- name: ensure directories exist file: path: "{{ item }}" state: directory mode: '0755' loop: - "{{ nginx_confd_folder }}" - name: generate certificates command: openssl req \ -x509 \ -sha256 \ -newkey rsa:2048 \ -keyout "{{ data_folder }}/nginx/{{ base_domain }}".key \ -subj "/C=CZ/L=Prague/CN=*.{{ base_domain }}/emailAddress={{ admin_email }}" -out "{{ data_folder }}/nginx/{{ base_domain }}".crt \ -days 3650 \ -nodes \ - name: copy certificates copy: src: "{{ item }}" dest: "{{ data_folder }}/nginx" loop: - "{{ data_folder }}/nginx/{{ base_domain }}.key" - "{{ data_folder }}/nginx/{{ base_domain }}.crt" - name: copy .conf file template: src: nginx.conf.j2 dest: "{{ data_folder }}/nginx/nginx.conf" mode: '0755' - name: run container docker_container: name: 'nginx' image: nginx volumes: - "{{ data_folder }}/nginx/nginx.conf:/etc/nginx/nginx.conf" - "{{ data_folder }}/nginx/{{ base_domain }}.key:/etc/nginx/{{ base_domain }}.key" - "{{ data_folder }}/nginx/{{ base_domain }}.crt:/etc/nginx/{{ base_domain }}.crt" - "{{ nginx_confd_folder }}:/etc/nginx/conf.d" ports: - "80:80" - "443:443" env: NGINX_HOST: "{{ base_domain }}" NGINX_PORT: '80' state: started restart: yes