--- - name: Assert required variables ansible.builtin.assert: that: - nginx_proxy_certbot_email | length > 0 - nginx_proxy_cloudflare_api_token | length > 0 fail_msg: >- Set nginx_proxy_certbot_email, and make sure vault_cloudflare_api_token (or nginx_proxy_cloudflare_api_token) is defined. quiet: true tags: [nginx-proxy, preflight] - name: Create directories ansible.builtin.file: path: "{{ item }}" state: directory mode: "0755" loop: - "{{ nginx_proxy_base_path }}" - "{{ nginx_proxy_certs_dir }}" - "{{ nginx_proxy_conf_dir }}" - "{{ nginx_proxy_domains_dir }}" - "{{ nginx_proxy_scripts_dir }}" tags: [nginx-proxy] - name: Install certbot script ansible.builtin.copy: src: certbot-init.sh dest: "{{ nginx_proxy_scripts_dir }}/certbot-init.sh" mode: "0755" tags: [nginx-proxy] - name: Template global nginx settings ansible.builtin.template: src: 00-global.conf.j2 dest: "{{ nginx_proxy_conf_dir }}/00-global.conf" mode: "0644" notify: Reload nginx tags: [nginx-proxy] - name: Template compose env file ansible.builtin.template: src: env.j2 dest: "{{ nginx_proxy_base_path }}/.env" mode: "0600" no_log: true tags: [nginx-proxy] - name: Template compose file ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{ nginx_proxy_base_path }}/docker-compose.yml" mode: "0644" tags: [nginx-proxy] - name: Deploy nginx and certbot community.docker.docker_compose_v2: project_src: "{{ nginx_proxy_base_path }}" pull: "{{ nginx_proxy_pull_policy }}" state: present tags: [nginx-proxy] - name: Verify nginx config is valid and the container is serving ansible.builtin.command: "docker exec {{ nginx_proxy_nginx_container }} nginx -t" register: nginx_proxy_test until: nginx_proxy_test.rc == 0 retries: 6 delay: 5 changed_when: false tags: [nginx-proxy, verify]