--- - name: Configure webserver with Nginx and TLS hosts: webservers become: true gather_facts: false vars: tls_dir: /etc/nginx/ssl/ key_file: nginx.key cert_file: nginx.crt conf_file: /etc/nginx/sites-available/default server_name: Test01 handlers: - name: Restart nginx service: name: nginx state: restarted tasks: - name: Ensure nginx is installed package: name: nginx update_cache: true notify: Restart nginx - name: Create directories for TLS certificates file: path: "{{ tls_dir }}" state: directory mode: "0750" notify: Restart nginx - name: Copy TLS files copy: src: "{{ item }}" dest: "{{ tls_dir }}" mode: "0600" loop: - "{{ key_file }}" - "{{ cert_file }}" notify: Restart nginx - name: Manage nginx config template template: src: nginx.conf.j2 dest: "{{ conf_file }}" mode: "0644" notify: Restart nginx - name: Enable configuration file: src: /etc/nginx/sites-available/default dest: /etc/nginx/sites-enabled/default state: link - name: Install home page template: src: index.html.j2 dest: /usr/share/nginx/html/index.html mode: "0644" - name: Restart nginx meta: flush_handlers - name: "Test it! https://192.168.62.160/index.html" delegate_to: localhost become: false uri: url: "https://192.168.62.160/index.html" validate_certs: false return_content: true register: this failed_when: "'Running on ' not in this.content" tags: - test