|
|
- - name: install openvpn-openssl package
- opkg:
- name: openvpn-openssl
- state: present
-
- - name: create openvpn KEY
- shell: 'openssl genrsa -out /etc/openvpn/openvpn.key 2048'
- args:
- creates: /etc/openvpn/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: /etc/openvpn/openvpn.csr
- notify: reload openvpn
-
- - name: check if openvpn cert key exist
- stat:
- path: /etc/openvpn/openvpn.cert
- 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:
- cert_request:
- type: 'sign_request'
- request:
- keyType: 'ssl_host'
- hostName: '{{ inventory_hostname }}'
- keyData: '{{ pub_key.stdout }}'
- - debug: var=cert_request verbosity=2
- - name: start sign request
- raw: "{{ cert_request | to_json }}"
- delegate_to: "{{item}}"
- delegate_facts: True
- with_items: "{{groups['cas']}}"
- register: request_result
- - debug: var=request_result verbosity=2
-
- - set_fact:
- request_output: "{{ request_result.results[0].stdout|string|from_json }}"
- - debug: var=request_output
-
- - name: generate get request
- set_fact:
- get_request:
- type: 'get_certificate'
- requestID: '{{ request_output.requestID }}'
- - debug: var=get_request verbosity=2
-
- - debug: msg="Please manualy confirm sign request with id {{ request_output.requestID }}"
-
- - name: wait for cert
- raw: "{{ get_request | to_json }}"
- delegate_to: "{{item}}"
- delegate_facts: True
- with_items: "{{groups['cas']}}"
- register: cert_result
-
- - debug: var=cert_result verbosity=2
-
- - set_fact:
- cert_key: "{{ cert_result.results[0].stdout|string|from_json }}"
-
- - debug: var=request_output verbosity=2
-
- - name: set pub key
- shell: "echo '{{ cert_key.result }}' > /etc/openvpn/openvpn.cert"
- register: set_pub_key
- when: not openvpn_cert_key.stat.exists
-
- - name: copy vpn ca public key
- copy:
- src: test_vpn_ca.crt
- dest: /etc/openvpn/ca.crt
-
- - 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
-
-
|