refactored docker and nginx roles, to make them more modular

This commit is contained in:
Kevin Veen-Birkenbach 2023-12-06 17:59:57 +01:00
parent 994b61dd1a
commit ed40ee1f42
24 changed files with 58 additions and 135 deletions

View File

@ -55,6 +55,7 @@
roles: roles:
- role: docker-wordpress - role: docker-wordpress
vars: vars:
domains: "{{wordpress_domains}}"
http_port: 8003 http_port: 8003
- name: setup mediawiki hosts - name: setup mediawiki hosts
@ -161,7 +162,7 @@
roles: roles:
- role: docker-joomla - role: docker-joomla
vars: vars:
domain: "joomla.{{top_domain}}" domain: "{{joomla_domains}}"
http_port: 8014 http_port: 8014
- name: setup attendize - name: setup attendize

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: register directory - name: register directory
stat: stat:

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,6 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include task certbot-matomo.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: certbot-matomo.yml
- name: configure {{domain}}.conf - name: configure {{domain}}.conf
template: src=templates/nginx-proxy.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=templates/nginx-proxy.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf

View File

@ -1,11 +1,7 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: create elasticsearch-sysctl.conf - name: create elasticsearch-sysctl.conf
copy: copy:

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}} https
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,9 +1,5 @@
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "docker jenkins" - name: "docker jenkins"
docker_compose: docker_compose:

View File

@ -1,10 +1,9 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
loop: "{{ domains }}"
- name: configure {{domain}}.conf loop_control:
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf loop_var: domain
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,12 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template:
src: "roles/nginx-docker-reverse-proxy/templates/domain.conf.j2"
dest: "/etc/nginx/conf.d/{{domain}}.conf"
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,13 +1,8 @@
--- ---
- name: "include tasks nginx-docker-proxy-domain.yml"
- name: recieve {{domain}} certificate include_tasks: nginx-docker-proxy-domain.yml
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}}
- name: configure {{domain}}.conf
vars: vars:
client_max_body_size: "31M" client_max_body_size: "31M"
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{path_docker_compose_files}}mailu" - name: "create {{path_docker_compose_files}}mailu"
file: file:

View File

@ -1,6 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include task certbot-matomo.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: certbot-matomo.yml
- name: configure {{domain}}.conf - name: configure {{domain}}.conf
template: src=templates/mastodon.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=templates/mastodon.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf

View File

@ -1,12 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template:
src: "roles/nginx-docker-reverse-proxy/templates/domain.conf.j2"
dest: "/etc/nginx/conf.d/{{domain}}.conf"
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,9 +1,5 @@
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "docker mediawiki" - name: "docker mediawiki"
docker_compose: docker_compose:

View File

@ -1,6 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include task certbot-matomo.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: certbot-matomo.yml
- name: configure {{domain}}.conf - name: configure {{domain}}.conf
template: template:

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include task certbot-matomo.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: certbot-matomo.yml
- name: configure {{domain}}.conf
template: src=templates/peertube.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,10 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,10 +0,0 @@
- name: Activate NGINX matomo tracking for {{domain}}
include_role:
name: nginx-matomo-tracking
when: nginx_matomo_tracking_active
- name: configure wordpress nginx configurations
vars:
client_max_body_size: "{{wordpress_max_upload_size}}"
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{ domain }}.conf
notify: restart nginx

View File

@ -1,19 +1,12 @@
--- ---
- name: "include task receive certbot certificate"
include_tasks: recieve-certbot-certificate.yml
vars:
domain: "{{ item }}"
loop: "{{ wordpress_domains }}"
loop_control:
loop_var: item
- name: "include task create wordpress nginx" - name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: create-wordpress-nginx.yml include_tasks: nginx-docker-proxy-domain.yml
vars: loop: "{{ domains }}"
domain: "{{ item }}"
loop: "{{ wordpress_domains }}"
loop_control: loop_control:
loop_var: item loop_var: domain
vars:
client_max_body_size: "{{wordpress_max_upload_size}}"
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,12 +1,6 @@
--- ---
- name: recieve {{domain}} certificate - name: "include tasks nginx-docker-proxy-domain.yml"
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}} include_tasks: nginx-docker-proxy-domain.yml
- name: configure {{domain}}.conf
template:
src: "roles/nginx-docker-reverse-proxy/templates/domain.conf.j2"
dest: "/etc/nginx/conf.d/{{domain}}.conf"
notify: restart nginx
- name: "create {{docker_compose_instance_directory}}" - name: "create {{docker_compose_instance_directory}}"
file: file:

View File

@ -1,10 +1,11 @@
---
- name: "include task certbot-matomo.yml"
include_tasks: certbot-matomo.yml
- name: configure {{domain}}.conf - name: configure {{domain}}.conf
template: src=homepage.nginx.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=homepage.nginx.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: recieve {{domain}} certificate
command: certbot certonly --agree-tos --email {{administrator_email}} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{domain}}
- name: nginx-homepage repo git - name: nginx-homepage repo git
git: git:
repo: "{{nginx_homepage_repository_address}}" repo: "{{nginx_homepage_repository_address}}"

5
tasks/certbot-matomo.yml Normal file
View File

@ -0,0 +1,5 @@
- name: "include task receive certbot certificate"
include_tasks: recieve-certbot-certificate.yml
- name: "include task implement-matomo-tracking.yml"
include_tasks: implement-matomo-tracking.yml

View File

@ -1,8 +1,5 @@
- name: "include task receive certbot certificate" - name: "include task certbot-matomo.yml"
include_tasks: recieve-certbot-certificate.yml include_tasks: certbot-matomo.yml
- name: "include task implement-matomo-tracking.yml"
include_tasks: implement-matomo-tracking.yml
- name: "include task create-domain-conf.yml" - name: "include task create-domain-conf.yml"
include_tasks: create-domain-conf.yml include_tasks: create-domain-conf.yml