--- - include_role: name: 'service' vars: service_name: 'nginx' service_packages: - 'nginx' - name: 'disable nginx default configuration' file: path: '/etc/nginx/sites-enabled/default' state: 'absent' notify: 'restart nginx' - name: 'create nginx location configuration directory' file: path: '{{ item }}' state: 'directory' mode: '0755' owner: 'www-data' group: 'www-data' loop: - '/etc/nginx/locations/' - '/etc/nginx/locations/{{ server_fqdn }}/' - name: 'upload nginx configuration' template: src: 'base.j2' dest: '/etc/nginx/sites-available/{{ server_fqdn }}.conf' notify: 'restart nginx' - name: 'enable nginx configurations' file: src: '/etc/nginx/sites-available/{{ server_fqdn }}.conf' dest: '/etc/nginx/sites-enabled/{{ server_fqdn }}.conf' state: 'link' notify: 'restart nginx' - name: 'MONITORNIG | add service HTTP/{{ server_fqdn }}' block: - name: 'MONITORING | fetch monitored HTTP for current host' set_fact: vhosts: > {{ hostvars[monitoring_host]['monitoring_facts'][host_fqdn]['vhosts'] | default([]) }} - name: 'MONITORING | add HTTP/{{ server_fqdn }} to monitored service' set_fact: nginx_monitoring_entry: > {{ { host_fqdn: { 'address': ansible_host, 'vhosts': vhosts + [server_fqdn], } } }} - name: 'MONITORING | update monitoring facts' set_fact: monitoring_facts: > {{ hostvars[monitoring_host]['monitoring_facts'] | default({}) | combine(nginx_monitoring_entry, recursive=true) }} delegate_facts: true delegate_to: '{{ monitoring_host }}' tags: - 'monitoring' ...