--- # tasks file for nginx-ssl - name: install nginx ansible.builtin.package: name: nginx state: present - name: deploy nginx config ansible.builtin.copy: src: files/nginx.conf dest: /etc/nginx/nginx.conf notify: restart nginx - name: ensure conf.d exists ansible.builtin.file: path: /etc/nginx/conf.d state: directory - name: deploy service config(s) ansible.builtin.template: src: templates/server.conf dest: /etc/nginx/conf.d/{{ item.domain }}.conf loop: "{{ domains }}" notify: restart nginx - name: check if letsencrypt is set up ansible.builtin.command: '[ -d "/etc/letsencrypt/" ]' register: result ignore_errors: true - name: check if letsencrypt is set up ansible.builtin.command: '[ -d "/etc/nginx/certs/" ]' register: result2 ignore_errors: true - name: delete folder if exists ansible.builtin.file: state: absent path: /etc/nginx/certs when: (result is succeeded and result2 is succeeded) or (result is failed and result2 is failed) - name: create symlink ansible.builtin.file: src: /etc/letsencrypt/live dest: /etc/nginx/certs state: link force: yes when: result is succeeded notify: restart nginx - name: Create certs directory if it doesn't exist file: path: /etc/nginx/certs/ state: directory when: result is failed - include_tasks: create_cert.yml when: result is failed loop: "{{ domains }}" - name: ensure nginx is running service: name: nginx state: started enabled: yes