---
|
|
- 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
|