add letsencrypt bundle
This commit is contained in:
parent
04f2baacf4
commit
dc9e8dc679
5 changed files with 37 additions and 2 deletions
5
bundles/letsencrypt/files/domains.txt
Normal file
5
bundles/letsencrypt/files/domains.txt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
${node.hostname}
|
||||||
|
|
||||||
|
% for domain, aliases in node.metadata.get('letsencrypt', {}).get('domains', {}).items():
|
||||||
|
${domain} ${' '.join(aliases)}
|
||||||
|
% endfor
|
24
bundles/letsencrypt/items.py
Normal file
24
bundles/letsencrypt/items.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
assert node.has_bundle('nginx'), 'letsencrypt needs nginx'
|
||||||
|
|
||||||
|
pkg_apt = {
|
||||||
|
'dehydrated': {},
|
||||||
|
}
|
||||||
|
|
||||||
|
actions = {
|
||||||
|
'letsencrypt_update_certificates': {
|
||||||
|
'command': 'dehydrated --cron --accept-terms --ocsp --challenge http-01',
|
||||||
|
'triggered': True,
|
||||||
|
'needs': {
|
||||||
|
'pkg_apt:dehydrated',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
files = {
|
||||||
|
'/etc/dehydrated/domains.txt': {
|
||||||
|
'content_type': 'mako',
|
||||||
|
'triggers': {
|
||||||
|
'action:letsencrypt_update_certificates',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -2,12 +2,12 @@ server {
|
||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server;
|
listen [::]:80 default_server;
|
||||||
server_name _;
|
server_name _;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
return 301 https://$host$request_uri;
|
return 301 https://$host$request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /.well-known/acme-challenge/ {
|
location /.well-known/acme-challenge/ {
|
||||||
alias /var/www/default/.well-known/acme-challenge/;
|
alias /var/lib/dehydrated/acme-challenges/;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ groups['all'] = {
|
||||||
'bundles': {
|
'bundles': {
|
||||||
'apt',
|
'apt',
|
||||||
'hostname',
|
'hostname',
|
||||||
|
'letsencrypt',
|
||||||
'sudo',
|
'sudo',
|
||||||
'systemd',
|
'systemd',
|
||||||
'users',
|
'users',
|
||||||
|
|
|
@ -7,6 +7,11 @@ nodes['htz-cloud.sewfile'] = {
|
||||||
'seafile',
|
'seafile',
|
||||||
],
|
],
|
||||||
'metadata': {
|
'metadata': {
|
||||||
|
'letsencrypt': {
|
||||||
|
'domains': {
|
||||||
|
'sewfile.franzi.business': set(),
|
||||||
|
},
|
||||||
|
},
|
||||||
'os': 'debian',
|
'os': 'debian',
|
||||||
'os_release': 'buster',
|
'os_release': 'buster',
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue