--- - 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([]) }}" when: - ansible_service_mgr == 'systemd' - item.state | default('present') == 'present' notify: - spiped daemon-reload - restart spiped tunnels 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([]) }}" when: - ansible_service_mgr == 'systemd' - item.state | default('present') == 'present' notify: - restart spiped tunnels no_log: true - name: manage services systemd: name: "spiped-{{ item.name }}.service" state: "{{ (item.state | default('present') == 'absent') | ternary('stopped', 'started') }}" enabled: "{{ item.state | default('present') != 'absent' }}" daemon_reload: true loop: "{{ spiped_tunnels | default([]) }}" no_log: true - name: remove keys file: path: "{{ spiped_etc_path }}/{{ item.name }}.key" state: "absent" loop: "{{ spiped_tunnels | default([]) }}" when: - item.state is defined - item.state == "absent" no_log: true - name: remove systemd unit file: path: "/etc/systemd/system/spiped-{{ item.name }}.service" state: "absent" loop: "{{ spiped_tunnels | default([]) }}" notify: - spiped daemon-reload when: - ansible_service_mgr == 'systemd' - item.state is defined - item.state == "absent" no_log: true