homelab/roles/nginx/tasks/main.yml

47 lines
1.4 KiB
YAML

- 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