forked from AFPy/infra
216 lines
7.3 KiB
YAML
216 lines
7.3 KiB
YAML
---
|
|
|
|
# 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
|
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFRY4/MaxUs8+mTrCKCXpHiXdrTjpNK9MqIpSpdLtxST pyconfr-2023
|
|
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; 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; 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; 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/;
|
|
charset utf-8;
|
|
location = / {
|
|
return 302 https://www.pycon.fr/2023$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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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/;
|
|
}
|