--- - name: install openvpn-openssl package opkg: name: openvpn-openssl state: present - name: create openvpn KEY shell: 'openssl genrsa -out {{ openvpn_key }} 2047' args: creates: "{{ openvpn_key }}" notify: reload openvpn - name: create openvpn dh2048 shell: 'openssl dhparam -out /etc/openvpn/dh2048.pem 2048' args: creates: /etc/openvpn/dh2048.pem notify: reload openvpn - name: create CSR shell: 'openssl req -new -sha256 -subj "/C=IT/ST=ITALY/L=TUSCANY/O=IT/CN={{ ansible_hostname }}.lilik.it" -key /etc/openvpn/openvpn.key -out /etc/openvpn/openvpn.csr' args: creates: "{{ openvpn_csr }}" notify: reload openvpn - name: check if openvpn cert key exist stat: path: "{{ openvpn_crt }}" register: openvpn_cert_key - block: - name: get pub key shell: "cat /etc/openvpn/openvpn.csr" register: pub_key - debug: var: pub_key verbosity: 2 - name: generate host request set_fact: ca_request: type: 'sign_request' request: keyType: 'ssl_host' hostName: '{{ inventory_hostname }}.lilik.it' keyData: '{{ pub_key.stdout }}' - debug: var: cert_request verbosity: 2 - name: start sign request include: ca-dialog.yaml - set_fact: request_output: "{{ request_result.stdout | string | from_json }}" - debug: var: request_output - name: generate get request set_fact: ca_request: type: 'get_certificate' requestID: '{{ request_output.requestID }}' - debug: msg: "Please manualy confirm sign request with id {{ request_output.requestID }}" - name: wait for cert include: ca-dialog.yaml - set_fact: cert_key: "{{ request_result.stdout | string | from_json }}" - debug: var: request_result verbosity: 2 - name: set pub key copy: content: "{{ cert_key.result }}" dest: "{{ openvpn_crt }}" register: set_pub_key when: not openvpn_cert_key.stat.exists - set_fact: certificates: - files/lilik_ca_x1.pub - files/lilik_ca_v1.pub - name: create vpn fullchain template: src: fullchain.j2 dest: /etc/openvpn/fullchain.crt notify: reload openvpn - name: write openvpn configuration template: dest: /etc/config/openvpn src: openvpn.j2 owner: root group: root mode: 0400 register: new_vpn_config notify: reload openvpn - name: commit openvpn configuration to uci shell: 'uci commit openvpn' notify: reload openvpn when: new_vpn_config.changed