--- - name: Validate nginx_proxy_sites is defined ansible.builtin.assert: that: - nginx_proxy_sites is defined - nginx_proxy_sites | length > 0 fail_msg: "nginx_proxy_sites must be defined with at least one site" - name: Validate each site has required fields ansible.builtin.assert: that: - item.server_name is defined - item.upstream is defined - item.upstream.host is defined - item.upstream.port is defined fail_msg: "Each site in nginx_proxy_sites must have server_name, upstream.host, and upstream.port" loop: "{{ nginx_proxy_sites }}" - name: Calculate certbot domains from sites ansible.builtin.set_fact: __nginx_proxy_certbot_domains: "{{ nginx_proxy_sites | map(attribute='server_name') | list }}" when: nginx_proxy_certbot_domains is not defined - name: Use explicit certbot domains when defined ansible.builtin.set_fact: __nginx_proxy_certbot_domains: "{{ nginx_proxy_certbot_domains }}" when: nginx_proxy_certbot_domains is defined - name: Install certbot ansible.builtin.include_tasks: certbot.yml when: nginx_proxy_certbot_enabled | bool - name: Install nginx ansible.builtin.include_tasks: nginx.yml when: nginx_proxy_nginx_enabled | bool - name: Install oauth2-proxy ansible.builtin.include_tasks: oauth2_proxy.yml when: nginx_proxy_oauth2_proxy_enabled | bool