--- - name: Deploy ldap2pg configuration block: - name: Render config template template: src: ldap2pg.yml.j2 dest: "/etc/ldap2pg.yml" owner: "{{ ldap2pg_user }}" group: "{{ ldap2pg_user }}" mode: 0600 backup: True register: ldap2pg_rendered_conf notify: - restart ldap2pg.timer - name: Validate new configuration command: /bin/ldap2pg --config /etc/ldap2pg.yml --dry changed_when: False become_user: "{{ ldap2pg_user }}" register: ldap2pg_conf_validation rescue: - name: Rollback previous configuration copy: src: "{{ ldap2pg_rendered_conf.backup_file }}" dest: /etc/ldap2pg.yml remote_src: True owner: "{{ ldap2pg_user }}" group: "{{ ldap2pg_user }}" mode: 0600 when: ldap2pg_rendered_conf.backup_file is defined tags: pg - name: Fails if new configuration isn't validated fail: msg: "Failed to validate /etc/ldap2pg: {{ ldap2pg_conf_validation.stdout }}" when: ldap2pg_conf_validation.rc != 0 tags: pg