- name: Add group name ssl-cert for SSL certificates group: name: ssl-cert state: present - name: Download LetsEncrypt release git: repo=https://github.com/letsencrypt/letsencrypt dest=/root/letsencrypt version=master force=yes - name: Create directory for LetsEncrypt configuration and certificates file: state=directory path=/etc/letsencrypt group=root owner=root - name: Configure LetsEncrypt template: src=etc_letsencrypt_cli.conf.j2 dest=/etc/letsencrypt/cli.conf owner=root group=root - name: Install LetsEncrypt package dependencies command: /root/letsencrypt/letsencrypt-auto --help register: le_deps_result changed_when: "'Bootstrapping dependencies' in le_deps_result.stdout" - name: Create directory for pre-renewal scripts file: state=directory path=/etc/letsencrypt/prerenew group=root owner=root - name: Create directory for post-renewal scripts file: state=directory path=/etc/letsencrypt/postrenew group=root owner=root - name: Create pre-renew hook to stop apache copy: content: "#!/bin/bash\n\nservice apache2 stop\n" dest: /etc/letsencrypt/prerenew/apache owner: root group: root mode: 0755 - name: Create post-renew hook to start apache copy: content: "#!/bin/bash\n\nservice apache2 start\n" dest: /etc/letsencrypt/postrenew/apache owner: root group: root mode: 0755 - name: Install crontab entry for LetsEncrypt copy: src: etc_cron-daily_letsencrypt-renew dest: /etc/cron.daily/letsencrypt-renew owner: root group: root mode: 0755 - name: Create live directory for LetsEncrypt cron job file: state=directory path=/etc/letsencrypt/live group=root owner=root - name: Get an SSL certificate for {{ domain }} from Let's Encrypt script: letsencrypt-gencert {{ domain }} creates=/etc/letsencrypt/live/{{ domain }}/privkey.pem - name: Modify permissions to allow ssl-cert group access file: path=/etc/letsencrypt/archive owner=root group=ssl-cert mode=0750