bundles/nginx: add deployment of vhost configs

This commit is contained in:
Franzi 2020-06-01 10:52:52 +02:00
parent dc9e8dc679
commit c4330f866b
Signed by: kunsi
GPG key ID: 12E3D2136B818350
3 changed files with 54 additions and 0 deletions

View file

@ -0,0 +1,25 @@
server {
server_name ${domain};
root ${webroot if webroot else '/var/www/{}/'.format(domain)};
index ${index if index else 'index.html index.htm'};
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /var/lib/dehydrated/certs/${domain}/fullchain.pem;
ssl_certificate_key /var/lib/dehydrated/certs/${domain}/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31104000; preload";
add_header X-Frame-Options "DENY";
% if extras:
<%include file="extras/${node.name}/${domain}" />
% endif
}

View file

@ -21,3 +21,19 @@ svc_systemd = {
},
},
}
for domain, config in node.metadata.get('nginx', {}).get('vhosts', {}).items():
files['/etc/nginx/sites/{}'.format(domain)] = {
'source': 'site_template',
'content_type': 'mako',
'context': {
'domain': domain,
**config
},
'needs': {
'action:letsencrypt_update_certificates',
},
'triggers': {
'svc_systemd:nginx:restart',
},
}

View file

@ -24,3 +24,16 @@ def defaults(metadata):
'worker_connections': 1000,
},
}, DEFAULTS, DONE
@metadata_processor
def letsencrypt(metadata):
if not node.has_bundle('letsencrypt'):
return metadata, DONE
le = metadata.setdefault('letsencrypt', {}).setdefault('domains', {})
for domain in metadata.get('nginx', {}).get('vhosts', {}).keys():
le[domain] = set()
return metadata, RUN_ME_AGAIN