No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

letsencrypt.yml 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. - name: Download LetsEncrypt release
  2. git: repo=https://github.com/letsencrypt/letsencrypt
  3. dest=/root/letsencrypt
  4. version=master
  5. force=yes
  6. - name: Create directory for LetsEncrypt configuration and certificates
  7. file: state=directory path=/etc/letsencrypt group=root owner=root
  8. - name: Configure LetsEncrypt
  9. template:
  10. src=etc_letsencrypt_cli.conf.j2
  11. dest=/etc/letsencrypt/cli.conf
  12. owner=root
  13. group=root
  14. - name: Install LetsEncrypt package dependencies
  15. command: /root/letsencrypt/letsencrypt-auto --help
  16. - name: Create directory for post-renewal scripts
  17. file: state=directory path=/etc/letsencrypt/postrenew group=root owner=root
  18. - name: Install crontab entry for LetsEncrypt
  19. copy:
  20. src=etc_cron-monthly_letsencrypt-renew
  21. dest=/etc/cron.monthly/letsencrypt-renew
  22. owner=root
  23. group=root
  24. mode=755
  25. - name: Create live directory for LetsEncrypt cron job
  26. file: state=directory path=/etc/letsencrypt/live group=root owner=root
  27. - name: Stop Apache
  28. service: name=apache2 state=stopped
  29. - name: Get an SSL certificate for {{ domain }} from Let's Encrypt
  30. script: letsencrypt-gencert {{ domain }}
  31. args:
  32. creates: /etc/letsencrypt/live/{{ domain }}/privkey.pem
  33. when: ansible_ssh_user != "vagrant"
  34. - name: Modify permissions to allow ssl-cert group access
  35. file: path=/etc/letsencrypt/archive owner=root group=ssl-cert mode=750
  36. when: ansible_ssh_user != "vagrant"
  37. ### Several steps to install a self-signed wildcard key to support offline testing
  38. - name: Create live directory for testing keys
  39. file: dest=/etc/letsencrypt/live/{{ domain }} state=directory
  40. owner=root group=root mode=755
  41. when: ansible_ssh_user == "vagrant"
  42. - name: Copy SSL wildcard private key for testing
  43. copy: src=wildcard_private.key
  44. dest=/etc/letsencrypt/live/{{ domain }}/privkey.pem
  45. owner=root group=ssl-cert mode=640
  46. when: ansible_ssh_user == "vagrant"
  47. - name: Copy SSL public certificate into place for testing
  48. copy: src=wildcard_public_cert.crt
  49. dest=/etc/letsencrypt/live/{{ domain }}/cert.pem
  50. group=root owner=root mode=644
  51. register: certificate
  52. notify: restart apache
  53. when: ansible_ssh_user == "vagrant"
  54. - name: Copy SSL CA combined certificate into place for testing
  55. copy: src=wildcard_ca.pem
  56. dest=/etc/letsencrypt/live/{{ domain }}/chain.pem
  57. group=root owner=root mode=644
  58. register: ca_certificate
  59. notify: restart apache
  60. when: ansible_ssh_user == "vagrant"
  61. - name: Create a combined SSL cert for testing
  62. shell: cat /etc/letsencrypt/live/{{ domain }}/cert.pem
  63. /etc/letsencrypt/live/{{ domain }}/chain.pem >
  64. /etc/letsencrypt/live/{{ domain }}/fullchain.pem
  65. when: private_key.changed or certificate.changed or ca_certificate.changed
  66. when: ansible_ssh_user == "vagrant"
  67. - name: Set permissions on combined SSL public cert
  68. file: name=/etc/letsencrypt/live/{{ domain }}/fullchain.pem mode=644
  69. notify: restart apache
  70. when: ansible_ssh_user == "vagrant"
  71. ### Back to normal
  72. - name: Start Apache
  73. service: name=apache2 state=started