homelab/roles/nginx/tasks/webserver.yml

40 lines
1.2 KiB
YAML
Raw Normal View History

- name: Create nginx root
file:
path: "{{ nginx_root }}"
state: directory
- name: Generate deploy keys
openssh_keypair:
path: "{{ nginx_repo_key }}"
state: present
- name: Clone static website files
git:
repo: "{{ nginx_repo_url }}"
dest: "{{ nginx_html }}"
version: "{{ nginx_repo_branch }}"
key_file: "{{ nginx_repo_key }}"
separate_git_dir: "{{ nginx_repo_dest }}"
- name: Start nginx container
docker_container:
name: "{{ nginx_name }}"
image: nginx:{{ nginx_version }}
state: started
restart_policy: always
2022-05-17 03:11:16 +00:00
container_default_behavior: no_defaults
networks_cli_compatible: true
2022-05-17 03:11:16 +00:00
network_mode: traefik
networks:
- name: traefik
volumes:
- "{{ nginx_html }}:/usr/share/nginx/html:ro"
labels:
traefik.http.routers.nginx.rule: "Host(`{{ nginx_domain }}`)"
traefik.http.middlewares.nginxauth.basicauth.users: "{{ nginx_auth }}"
traefik.http.routers.nginx.entrypoints: websecure
traefik.http.routers.nginx.tls.certresolver: letsencrypt
traefik.http.routers.nginx.middlewares: "securehttps@file,nginxauth"
traefik.docker.network: traefik
traefik.enable: "true"