64 lines
1.5 KiB
YAML
64 lines
1.5 KiB
YAML
---
|
|
# 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
|
|
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
|