Playbooks to a new Lilik
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.

89 lines
2.0 KiB

7 years ago
7 years ago
7 years ago
  1. ---
  2. - name: 'install openvpn-openssl package'
  3. opkg:
  4. name: 'openvpn-openssl'
  5. state: 'present'
  6. tags:
  7. - 'packages'
  8. - name: 'create openvpn private key'
  9. shell:
  10. cmd: >
  11. openssl genpkey
  12. -algorithm ed25519
  13. -out /etc/openvpn/openvpn.key
  14. args:
  15. creates: '/etc/openvpn/openvpn.key'
  16. notify: 'reload openvpn'
  17. tags:
  18. - 'tls_int'
  19. # Shouldn't be required for TLSv1.3
  20. #
  21. #- name: create openvpn dh2048
  22. # shell: 'openssl dhparam -out /etc/openvpn/dh2048.pem 2048'
  23. # args:
  24. # creates: /etc/openvpn/dh2048.pem
  25. # notify: reload openvpn
  26. - name: 'upload server ca'
  27. copy:
  28. content: '{{ openvpn_tls_server_ca }}{{ tls_root_ca }}'
  29. dest: '/etc/openvpn/server_ca.crt'
  30. tags:
  31. - 'tls_int'
  32. - name: 'upload user ca'
  33. copy:
  34. content: '{{ openvpn_tls_user_ca }}{{ tls_root_ca }}'
  35. dest: '/etc/openvpn/user_ca.crt'
  36. notify: 'reload openvpn'
  37. tags:
  38. - 'tls_int'
  39. - name: 'check openvpn cert status'
  40. command: >-
  41. openssl verify
  42. -CAfile /etc/openvpn/server_ca.crt
  43. /etc/openvpn/openvpn.crt
  44. register: openvpn_cert_is_valid
  45. changed_when: false
  46. failed_when: false
  47. tags:
  48. - 'tls_int'
  49. - name: 'create openvpn cert request'
  50. shell: >
  51. openssl req
  52. -new
  53. -subj "{{ openssl_x509_prefix }}/OU=Server/CN={{ host_fqdn }}"
  54. -key /etc/openvpn/openvpn.key
  55. -out /etc/openvpn/openvpn.csr
  56. when: openvpn_cert_is_valid.rc != 0
  57. tags:
  58. - 'tls_int'
  59. - import_tasks: 'ca-signing-request.yaml'
  60. vars:
  61. host: '{{ host_fqdn }}'
  62. request_path: '/etc/openvpn/openvpn.csr'
  63. output_path: '/etc/openvpn/openvpn.crt'
  64. when: openvpn_cert_is_valid.rc != 0
  65. notify: 'reload openvpn'
  66. tags:
  67. - 'tls_int'
  68. - name: 'write openvpn configuration'
  69. template:
  70. dest: '/etc/config/openvpn'
  71. src: 'openvpn.j2'
  72. owner: 'root'
  73. group: 'root'
  74. mode: '0400'
  75. register: config_updated
  76. notify: 'reload openvpn'
  77. - name: 'commit openvpn configuration to uci'
  78. shell: 'uci commit openvpn'
  79. notify: 'reload openvpn'
  80. when: config_updated.changed