- 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)