ansible-role-fastd/tasks/profile.yml

56 lines
1.3 KiB
YAML

- name: generate profile directory
file:
name: "{{ config_dir }}/{{ profile.key }}"
state: directory
owner: "{{ config_owner }}"
group: "{{ config_group }}"
mode: u=rwx,g=rx,o=rx
- name: generate peers directory
file:
name: "{{ config_dir }}/{{ profile.key }}/peers"
state: directory
owner: "{{ config_owner }}"
group: "{{ config_group }}"
mode: u=rwx,g=rx,o=rx
- include_tasks: profile-peers.yml
loop: "{{ profile.value.peers |d({}) |dict2items }}"
loop_control:
loop_var: peer
register: peer_config
- name: generate configuration file
template:
src: fastd.conf.j2
dest: "{{ config_dir }}/{{ profile.key }}/fastd.conf"
owner: "{{ config_owner }}"
group: "{{ config_group }}"
mode: u=rw,g=r,o=
validate: "{{ fastd_binary }} --verify-config --config %s"
register: config
- name: start service at boot up
service:
name: "fastd@{{ profile.key }}"
state: started
enabled: yes
when:
- profile.value.start |d(True)
- name: disable service at boot up
service:
name: "fastd@{{ profile.key }}"
state: stopped
enabled: no
when:
- not profile.value.start |d(True)
- name: reload configuration
service:
name: "fastd@{{ profile.key }}"
state: restarted
when:
- config.changed or peer_config.changed
- profile.value.start |d(True)