--- # After running this playbook on a new machine, you'll need either to: # - Rsync /var/www/pycon/fr/ from another server or a backup. # - Redeploy every sites (to run pelican / frozen-flask / ...). - hosts: webservers vars: nginx_public_deploy_key: | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINbgxOufHY7SxQrJNTlHmye+xeNHBA1O5SGtGhGeOVZM ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIvF5rwjx5lpjzH6B4Uce9kZhz260kkwzYvIieR189Q1 tasks: - name: Basic setup include_role: name=common - name: Setup PyConFr include_role: name=nginx vars: nginx_owner: pyconfr nginx_domain: pycon.fr nginx_certificates: ['pycon.fr', 'www.pycon.fr'] nginx_path: /var/www/pycon.fr/ nginx_conf: | server { listen 80; server_name .pycon.fr; access_log /var/log/nginx/pycon.fr-access.log; error_log /var/log/nginx/pycon.fr-error.log; return 301 https://www.pycon.fr$request_uri; } server { listen 443 ssl; server_name pycon.fr; access_log /var/log/nginx/pycon.fr-access.log; error_log /var/log/nginx/pycon.fr-error.log; include snippets/letsencrypt-pycon.fr.conf; return 301 https://www.pycon.fr$request_uri; } server { listen 443 ssl; server_name www.pycon.fr; access_log /var/log/nginx/pycon.fr-access.log; error_log /var/log/nginx/pycon.fr-error.log; include snippets/letsencrypt-pycon.fr.conf; root /var/www/pycon.fr/; location = / { return 302 https://www.pycon.fr/2020$request_uri; } rewrite ^/2018/$ /2018/fr/index/ last; rewrite ^/2018/(A-Za-z-)+/$ /2018/fr/$1/ last; } - name: Setup PyConFr 2016 include_role: name=nginx vars: nginx_domain: 2016.pycon.fr nginx_certificates: [2016.pycon.fr] nginx_conf: | server { listen 80; server_name 2016.pycon.fr; access_log /var/log/nginx/2016.pycon.fr-access.log; error_log /var/log/nginx/2016.pycon.fr-error.log; return 301 https://www.pycon.fr/2016/; } server { listen 443 ssl; server_name 2016.pycon.fr; access_log /var/log/nginx/2016.pycon.fr-access.log; error_log /var/log/nginx/2016.pycon.fr-error.log; include snippets/letsencrypt-2016.pycon.fr.conf; return 301 https://www.pycon.fr/2016/; } - name: Setup PyConFr 2012 include_role: name=nginx vars: nginx_domain: 2012.pycon.fr nginx_certificates: [2012.pycon.fr] nginx_conf: | server { listen 80; server_name 2012.pycon.fr; access_log /var/log/nginx/2012.pycon.fr-access.log; error_log /var/log/nginx/2012.pycon.fr-error.log; return 301 https://www.pycon.fr/2012/; } server { listen 443 ssl; server_name 2012.pycon.fr; access_log /var/log/nginx/2012.pycon.fr-access.log; error_log /var/log/nginx/2012.pycon.fr-error.log; include snippets/letsencrypt-2012.pycon.fr.conf; return 301 https://www.pycon.fr/2012/; } - name: Setup PyConFr 2011 include_role: name=nginx vars: nginx_domain: 2011.pycon.fr nginx_certificates: [2011.pycon.fr] nginx_conf: | server { listen 80; server_name 2011.pycon.fr; access_log /var/log/nginx/2011.pycon.fr-access.log; error_log /var/log/nginx/2011.pycon.fr-error.log; return 301 https://www.pycon.fr/2011/; } server { listen 443 ssl; server_name 2011.pycon.fr; access_log /var/log/nginx/2011.pycon.fr-access.log; error_log /var/log/nginx/2011.pycon.fr-error.log; include snippets/letsencrypt-2011.pycon.fr.conf; return 301 https://www.pycon.fr/2011/; } - name: Setup PyConFr 2010 include_role: name=nginx vars: nginx_domain: 2010.pycon.fr nginx_certificates: [2010.pycon.fr] nginx_conf: | server { listen 80; server_name 2010.pycon.fr; access_log /var/log/nginx/2010.pycon.fr-access.log; error_log /var/log/nginx/2010.pycon.fr-error.log; return 301 https://www.pycon.fr/2010/; } server { listen 443 ssl; server_name 2010.pycon.fr; access_log /var/log/nginx/2010.pycon.fr-access.log; error_log /var/log/nginx/2010.pycon.fr-error.log; include snippets/letsencrypt-2010.pycon.fr.conf; return 301 https://www.pycon.fr/2010/; } - name: Setup sigal of paullaroid.pycon.fr include_role: name=nginx vars: nginx_owner: paullaroid nginx_domain: paullaroid.pycon.fr nginx_certificates: [paullaroid.pycon.fr] nginx_path: /var/www/paullaroid.pycon.fr/ nginx_conf: | server { listen 80; server_name paullaroid.pycon.fr; access_log /var/log/nginx/paullaroid.pycon.fr-access.log; error_log /var/log/nginx/paullaroid.pycon.fr-error.log; return 301 https://$host$request_uri; } server { listen 443 ssl; charset utf-8; server_name paullaroid.pycon.fr; access_log /var/log/nginx/paullaroid.pycon.fr-access.log; error_log /var/log/nginx/paullaroid.pycon.fr-error.log; include snippets/letsencrypt-paullaroid.pycon.fr.conf; root /var/www/paullaroid.pycon.fr/; index index.html; } - name: Setup fr.pycon.org include_role: name=julienpalard.nginx vars: nginx_domain: fr.pycon.org nginx_certificates: [fr.pycon.org] nginx_conf: | server { listen 80; server_name fr.pycon.org; access_log /var/log/nginx/fr.pycon.org-access.log; error_log /var/log/nginx/fr.pycon.org-error.log; return 301 https://www.pycon.fr/; } server { listen 443 ssl; server_name fr.pycon.org; access_log /var/log/nginx/fr.pycon.org-access.log; error_log /var/log/nginx/fr.pycon.org-error.log; include snippets/letsencrypt-fr.pycon.org.conf; return 301 https://www.pycon.fr/; }