add spiped role
This commit is contained in:
parent
c63271c8b5
commit
befad13cb5
14
roles/spiped/defaults/main.yaml
Normal file
14
roles/spiped/defaults/main.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
spiped_package_name: spiped
|
||||
spiped_package_state: present
|
||||
|
||||
spiped_etc_path: /etc/spiped
|
||||
spiped_run_path: /run/spiped
|
||||
|
||||
spiped_user: spiped
|
||||
spiped_group: spiped
|
||||
spiped_user_state: present
|
||||
spiped_user_comment: spiped
|
||||
spiped_user_home: "{{ spiped_run_path }}"
|
||||
spiped_user_password: "!"
|
||||
spiped_user_shell: /usr/sbin/nologin
|
10
roles/spiped/handlers/main.yaml
Normal file
10
roles/spiped/handlers/main.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: spiped daemon-reload
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
|
||||
- name: restart spiped tunnels
|
||||
service:
|
||||
name: "spiped-{{ item.name }}"
|
||||
state: restarted
|
||||
loop: "{{ spiped_tunnels | default([]) }}"
|
60
roles/spiped/tasks/main.yaml
Normal file
60
roles/spiped/tasks/main.yaml
Normal file
@ -0,0 +1,60 @@
|
||||
---
|
||||
- name: install package
|
||||
package:
|
||||
name: "{{ spiped_package_name }}"
|
||||
state: "{{ spiped_package_state }}"
|
||||
|
||||
- name: "create {{ spiped_user }} user"
|
||||
user:
|
||||
name: "{{ spiped_user }}"
|
||||
comment: "{{ spiped_user_comment }}"
|
||||
password: "{{ spiped_user_password }}"
|
||||
home: "{{ spiped_user_home }}"
|
||||
shell: "{{ spiped_user_shell }}"
|
||||
state: "{{ spiped_user_state }}"
|
||||
system: yes
|
||||
create_home: no
|
||||
|
||||
- name: create paths
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
loop:
|
||||
- "{{ spiped_etc_path }}"
|
||||
|
||||
- name: configure systemd unit
|
||||
template:
|
||||
src: spiped.service.j2
|
||||
dest: "/etc/systemd/system/spiped-{{ item.name }}.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
loop: "{{ spiped_tunnels | default([]) }}"
|
||||
notify:
|
||||
- restart spiped tunnels
|
||||
- spiped daemon-reload
|
||||
when: ansible_service_mgr == 'systemd'
|
||||
no_log: true
|
||||
|
||||
- name: configure keys
|
||||
copy:
|
||||
dest: "{{ spiped_etc_path }}/{{ item.name }}.key"
|
||||
content: "{{ item.key | b64decode }}"
|
||||
owner: "{{ spiped_user }}"
|
||||
group: "{{ spiped_group }}"
|
||||
mode: 0400
|
||||
loop: "{{ spiped_tunnels | default([]) }}"
|
||||
notify:
|
||||
- restart spiped tunnels
|
||||
no_log: true
|
||||
|
||||
- name: manage services
|
||||
service:
|
||||
name: "spiped-{{ item.name }}.service"
|
||||
state: "{{ item.state | default('started') }}"
|
||||
enabled: "{{ item.enabled | default(true) }}"
|
||||
loop: "{{ spiped_tunnels | default([]) }}"
|
||||
no_log: true
|
22
roles/spiped/templates/spiped.service.j2
Normal file
22
roles/spiped/templates/spiped.service.j2
Normal file
@ -0,0 +1,22 @@
|
||||
{% set keyfile = "{0}/{1}.key".format(spiped_etc_path, item.name) %}
|
||||
# {{ ansible_managed }}
|
||||
|
||||
[Unit]
|
||||
Description=spiped tunnel {{ item.name }}
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User={{ spiped_user }}
|
||||
{% if item.type == 'client' %}
|
||||
ExecStart=/usr/bin/spiped -F -g -k {{ keyfile }} -D -e -s '{{ item.source_socket }}' -t '{{ item.target_socket }}'
|
||||
{% else %}
|
||||
ExecStart=/usr/bin/spiped -F -g -k {{ keyfile }} -d -s '{{ item.source_socket }}' -t '{{ item.target_socket }}'
|
||||
{% endif %}
|
||||
Restart=always
|
||||
RestartSec=60
|
||||
RuntimeDirectory=spiped
|
||||
PIDFile={{ spiped_run_path }}/{{ item.name }}.pid
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user