forked from ISTI-ansible-roles/ansible-roles
library/roles/letsencrypt-acmetool-client/defaults/main.yml: Fix the hooks path
library/roles/haproxy: Scripts and tasks to add support for the acme letsencrypt tool.
This commit is contained in:
parent
8b31ee9e9a
commit
3085c6b817
|
@ -23,4 +23,18 @@
|
|||
#
|
||||
# Hints to protect from DDOS or too many legitimate requests
|
||||
# http://www.loadbalancer.org/de/blog/black-friday-black-out-protection-with-haproxy
|
||||
#
|
||||
#
|
||||
|
||||
When letsencrypt is enabled, the haproxy configurazion file needs to
|
||||
contain not only the https configuration, but also something like:
|
||||
|
||||
frontend http
|
||||
bind 80
|
||||
acl letsencrypt-request path_beg -i /.well-known/acme-challenge/
|
||||
use_backend letsencrypt if letsencrypt-request
|
||||
|
||||
backend letsencrypt
|
||||
mode http
|
||||
server letsencrypt 127.0.0.1:9999
|
||||
|
||||
Where 9999 is the port where the letsencrypt standalone client will listen to.
|
||||
|
|
|
@ -13,3 +13,4 @@ haproxy_ssl_port: 443
|
|||
haproxy_admin_port: 8880
|
||||
|
||||
haproxy_letsencrypt_managed: False
|
||||
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
|
||||
LE_SERVICES_SCRIPT_DIR=/usr/lib/acme/hooks
|
||||
LE_CERTS_DIR=/var/lib/acme/live/$HOSTNAME
|
||||
LE_LOG_DIR=/var/log/letsencrypt
|
||||
HAPROXY_CERTDIR=/etc/pki/certs
|
||||
HAPROXY_CERTFILE=$HAPROXY_CERTDIR/haproxy.pem
|
||||
DATE=$( date )
|
||||
|
||||
[ ! -d $LE_LOG_DIR ] && mkdir $LE_LOG_DIR
|
||||
echo "$DATE" >> $LE_LOG_DIR/haproxy.log
|
||||
|
||||
if [ -f /etc/default/letsencrypt ] ; then
|
||||
. /etc/default/letsencrypt
|
||||
else
|
||||
echo "No letsencrypt default file" >> $LE_LOG_DIR/haproxy.log
|
||||
fi
|
||||
|
||||
echo "Building the new certificate file" >> $LE_LOG_DIR/haproxy.log
|
||||
cat ${LE_CERTS_DIR}/{fullchain,privkey} > ${HAPROXY_CERTFILE}
|
||||
chmod 440 ${HAPROXY_CERTFILE}
|
||||
chgrp haproxy ${HAPROXY_CERTFILE}
|
||||
|
||||
echo "Reload the haproxy service" >> $LE_LOG_DIR/haproxy.log
|
||||
service haproxy reload >/dev/null 2>&1
|
||||
echo "Done." >> $LE_LOG_DIR/haproxy.log
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,6 +1,15 @@
|
|||
---
|
||||
- name: Install a script that fix the letsencrypt certificate for haproxy and then reload the service
|
||||
copy: src=haproxy-letsencrypt.sh dest={{ letsencrypt_services_scripts_dir }}/haproxy owner=root group=root mode=0550
|
||||
when: haproxy_letsencrypt_managed
|
||||
when:
|
||||
- haproxy_letsencrypt_managed
|
||||
- letsencrypt_install
|
||||
tags: [ 'haproxy', 'letsencrypt' ]
|
||||
|
||||
- name: Install a script that fix the letsencrypt certificate for haproxy and then reload the service
|
||||
copy: src=haproxy-letsencrypt-acme.sh dest={{ letsencrypt_acme_services_scripts_dir }}/haproxy owner=root group=root mode=4550
|
||||
when:
|
||||
- haproxy_letsencrypt_managed
|
||||
- letsencrypt_acme_install
|
||||
tags: [ 'haproxy', 'letsencrypt' ]
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ letsencrypt_acme_command: acmetool
|
|||
letsencrypt_acme_command_opts: '--batch --xlog.syslog --xlog.severity=info'
|
||||
letsencrypt_acme_config_dir: '{{ letsencrypt_acme_user_home }}/conf'
|
||||
letsencrypt_acme_certsconf_dir: '{{ letsencrypt_acme_user_home }}/desired'
|
||||
letsencrypt_acme_certs_dir: '{{ letsencrypt_acme_config_dir }}/live/{{ ansible_fqdn }}'
|
||||
letsencrypt_acme_certs_dir: '{{ letsencrypt_acme_user_home }}/live/{{ ansible_fqdn }}'
|
||||
# The various services maintainers need to put the reconfigure/restart scripts there
|
||||
letsencrypt_acme_services_scripts_dir: /usr/lib/acme/hooks
|
||||
|
||||
|
|
Loading…
Reference in New Issue