Добавить ansible.yml
This commit is contained in:
194
ansible.yml
Normal file
194
ansible.yml
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: update
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: install openvpn
|
||||||
|
apt:
|
||||||
|
name: openvpn
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: install iperf3
|
||||||
|
apt:
|
||||||
|
name: iperf3
|
||||||
|
state: present
|
||||||
|
|
||||||
|
|
||||||
|
- hosts: vpn-server
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: install easy-rsa
|
||||||
|
apt:
|
||||||
|
name: easy-rsa
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: create cert dir openvpn
|
||||||
|
file:
|
||||||
|
path: /etc/openvpn/keys
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: create vars for cert
|
||||||
|
copy:
|
||||||
|
dest: /usr/share/easy-rsa/vars
|
||||||
|
content: |
|
||||||
|
set_var EASYRSA_DIGEST "sha512"
|
||||||
|
set_var EASYRSA_REQ_COUNTRY "RU"
|
||||||
|
set_var EASYRSA_REQ_PROVINCE "Moscow"
|
||||||
|
set_var EASYRSA_REQ_CITY "Moscow"
|
||||||
|
set_var EASYRSA_REQ_ORG "Pupkin And Co"
|
||||||
|
set_var EASYRSA_REQ_EMAIL "help@mail.ru"
|
||||||
|
set_var EASYRSA_REQ_OU "IT"
|
||||||
|
set_var EASYRSA_CA_EXPIRE 3650
|
||||||
|
set_var EASYRSA_CERT_EXPIRE 365
|
||||||
|
set_var EASYRSA_CA_CN "ca"
|
||||||
|
|
||||||
|
- name: create ca and server cert
|
||||||
|
shell: |
|
||||||
|
cd /usr/share/easy-rsa/
|
||||||
|
./easyrsa init-pki
|
||||||
|
echo "ca" | ./easyrsa build-ca nopass
|
||||||
|
./easyrsa gen-dh
|
||||||
|
echo "vpn-server" | ./easyrsa gen-req vpn-server nopass
|
||||||
|
echo "yes" | ./easyrsa sign-req server vpn-server
|
||||||
|
|
||||||
|
- name: create user cert
|
||||||
|
shell: |
|
||||||
|
cd /usr/share/easy-rsa/
|
||||||
|
echo "{{ item }}" | ./easyrsa gen-req {{ item }} nopass
|
||||||
|
echo "yes" | ./easyrsa sign-req client {{ item }}
|
||||||
|
loop:
|
||||||
|
- client01
|
||||||
|
- client02
|
||||||
|
- client03
|
||||||
|
|
||||||
|
- name: copy public cert to openvpn dir
|
||||||
|
copy:
|
||||||
|
src: /usr/share/easy-rsa/pki/issued/{{ item }}.crt
|
||||||
|
dest: /etc/openvpn/keys/
|
||||||
|
remote_src: yes
|
||||||
|
loop:
|
||||||
|
- vpn-server
|
||||||
|
- client01
|
||||||
|
- client02
|
||||||
|
- client03
|
||||||
|
|
||||||
|
- name: copy private key cert to openvpn dir
|
||||||
|
copy:
|
||||||
|
src: /usr/share/easy-rsa/pki/private/{{ item }}.key
|
||||||
|
dest: /etc/openvpn/keys/{{ item }}.key
|
||||||
|
remote_src: yes
|
||||||
|
loop:
|
||||||
|
- vpn-server
|
||||||
|
- client01
|
||||||
|
- client02
|
||||||
|
- client03
|
||||||
|
|
||||||
|
- name: copy dh.pem and ca to openvpn dir
|
||||||
|
copy:
|
||||||
|
src: /usr/share/easy-rsa/pki/{{ item }}
|
||||||
|
dest: /etc/openvpn/keys/{{ item }}
|
||||||
|
remote_src: yes
|
||||||
|
loop:
|
||||||
|
- dh.pem
|
||||||
|
- ca.crt
|
||||||
|
|
||||||
|
- name: create conf openvpn
|
||||||
|
copy:
|
||||||
|
dest: /etc/openvpn/server.conf
|
||||||
|
content: |
|
||||||
|
port 8810
|
||||||
|
proto udp
|
||||||
|
dev tun
|
||||||
|
server 172.16.10.0 255.255.255.0
|
||||||
|
keepalive 10 120
|
||||||
|
ca /etc/openvpn/keys/ca.crt
|
||||||
|
cert /etc/openvpn/keys/vpn-server.crt
|
||||||
|
key /etc/openvpn/keys/vpn-server.key
|
||||||
|
dh /etc/openvpn/keys/dh.pem
|
||||||
|
client-to-client
|
||||||
|
persist-key
|
||||||
|
persist-tun
|
||||||
|
status /var/log/openvpn/openvpn-status.log
|
||||||
|
log-append /var/log/openvpn/openvpn.log
|
||||||
|
verb 4
|
||||||
|
mute 20
|
||||||
|
daemon
|
||||||
|
mode server
|
||||||
|
tls-server
|
||||||
|
comp-lzo
|
||||||
|
notify: restart openvpn
|
||||||
|
|
||||||
|
- name: copy cert
|
||||||
|
fetch:
|
||||||
|
src: "/etc/openvpn/keys/{{ item }}"
|
||||||
|
dest: "./{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
loop:
|
||||||
|
- ca.crt
|
||||||
|
- client01.crt
|
||||||
|
- client02.crt
|
||||||
|
- client03.crt
|
||||||
|
- client01.key
|
||||||
|
- client02.key
|
||||||
|
- client03.key
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: restart openvpn
|
||||||
|
systemd:
|
||||||
|
name: openvpn@server
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- hosts: vpn-client
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: create cert dir openvpn
|
||||||
|
file:
|
||||||
|
path: /etc/openvpn/keys
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: copy client01 cert
|
||||||
|
copy:
|
||||||
|
src: "./{{ item }}"
|
||||||
|
dest: "/etc/openvpn/keys/{{ item }}"
|
||||||
|
loop:
|
||||||
|
- ca.crt
|
||||||
|
- client01.crt
|
||||||
|
- client01.key
|
||||||
|
|
||||||
|
- name: create conf clietn openvpn
|
||||||
|
copy:
|
||||||
|
dest: /etc/openvpn/client.conf
|
||||||
|
content: |
|
||||||
|
client
|
||||||
|
resolv-retry infinite
|
||||||
|
nobind
|
||||||
|
proto udp
|
||||||
|
dev tun
|
||||||
|
remote 10.10.1.10 8810
|
||||||
|
keepalive 10 120
|
||||||
|
ca /etc/openvpn/keys/ca.crt
|
||||||
|
cert /etc/openvpn/keys/client01.crt
|
||||||
|
key /etc/openvpn/keys/client01.key
|
||||||
|
persist-key
|
||||||
|
persist-tun
|
||||||
|
status /var/log/openvpn/openvpn-status.log
|
||||||
|
log-append /var/log/openvpn/openvpn.log
|
||||||
|
verb 4
|
||||||
|
tls-client
|
||||||
|
comp-lzo
|
||||||
|
float
|
||||||
|
notify: restart openvpn
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: restart openvpn
|
||||||
|
systemd:
|
||||||
|
name: openvpn@client
|
||||||
|
state: restarted
|
||||||
Reference in New Issue
Block a user