ansible/roles/autossh/tasks/main.yaml
2020-06-12 16:29:02 -05:00

101 lines
2.4 KiB
YAML

---
- name: "create {{ autossh_user }} user"
user:
name: "{{ autossh_user }}"
comment: "{{ autossh_user_comment }}"
password: "{{ autossh_user_password }}"
#password_lock: yes
shell: "{{ autossh_user_shell }}"
generate_ssh_key: yes
state: "{{ autossh_user_state }}"
system: yes
skeleton: /dev/null
- name: "manage keys {{ item }}"
include: keys.yaml
loop:
- id_dsa
- id_ecdsa
- id_ed25519
- id_rsa
- name: "create {{ autossh_etc_path }}"
file:
path: "{{ autossh_etc_path }}"
owner: root
group: root
mode: 0755
state: directory
- name: install package
package:
name: "{{ autossh_package_name }}"
state: "{{ autossh_package_state }}"
- name: manage keys "{{ item }}"
include: keys.yaml
loop:
- id_dsa
- id_ecdsa
- id_ed25519
- id_rsa
- name: manage authorized keys
authorized_key:
user: "{{ autossh_user }}"
key: "{{ item.key }}"
comment: "{{ item.comment | default(omit) }}"
state: "{{ item.state | default('present') }}"
loop: "{{ autossh_authorized_keys | default([]) }}"
- name: configure systemd unit
template:
src: autossh.service.j2
dest: "{{ autossh_systemd_unit_path }}"
owner: root
group: root
mode: 0644
notify:
- reload autossh instances
- autossh daemon-reload
when: ansible_service_mgr == 'systemd'
- name: configure autossh tunnels
template:
src: autossh.j2
dest: "{{ autossh_etc_path }}/{{ item.name }}"
owner: root
group: root
mode: 0644
loop: "{{ autossh_config | default([]) }}"
notify: reload autossh instances
- name: manage services
systemd:
name: "autossh@{{ item.name }}.service"
state: "{{ (item.state | default('present') == 'absent') | ternary('stopped', 'started') }}"
enabled: "{{ item.state | default('present') != 'absent' }}"
daemon_reload: true
loop: "{{ autossh_config | default([]) }}"
- name: remove systemd unit
file:
path: "{{ autossh_systemd_unit_path }}"
state: absent
notify:
- autossh daemon-reload
when:
- ansible_service_mgr == 'systemd'
- autossh_systemd_unit_state == "absent"
no_log: true
- name: configure autossh tunnels
file:
path: "{{ autossh_etc_path }}/{{ item.name }}"
state: absent
loop: "{{ autossh_config | default([]) }}"
when:
- ansible_service_mgr == 'systemd'
- item.state is defined
- item.state == "absent"