You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
5 years ago
|
---
|
||
|
|
||
|
- set_fact: role_wh_proxy={{ True }}
|
||
|
tags: web
|
||
|
|
||
|
- name: Deploy web hosting vhosts
|
||
|
template: src=nginx_vhosts.conf.j2 dest=/etc/nginx/ansible_conf.d/31-vhosts_wh.conf
|
||
|
notify: reload nginx
|
||
|
tags: web
|
||
|
|
||
|
- name: Build a list of client vhosts
|
||
|
set_fact:
|
||
|
wh_vhosts: "{{ wh_vhosts | default([]) + [ item.1.vhost | default(item.0.name + '-' + item.1.name + '.wh.fws.fr') ] }}"
|
||
|
loop: "{{ wh_clients | default([]) | subelements('apps') }}"
|
||
|
tags: web
|
||
|
|
||
|
- name: Check if Let's Encrypt's cert exist (web hosting)
|
||
|
stat: path=/var/lib/dehydrated/certificates/certs/{{ item }}/fullchain.pem
|
||
|
register: wh_letsencrypt_certs
|
||
|
with_items: "{{ wh_vhosts }}"
|
||
|
tags: web
|
||
|
|
||
|
- name: Create directories for missing Let's Encrypt cert (web hosting)
|
||
|
file: path=/var/lib/dehydrated/certificates/certs/{{ item.item }} state=directory
|
||
|
with_items: "{{ wh_letsencrypt_certs.results }}"
|
||
|
when:
|
||
|
- item.stat is defined
|
||
|
- not item.stat.exists
|
||
|
tags: web
|
||
|
|
||
|
- name: Link missing Let's Encrypt cert to the default one (web hosting)
|
||
|
file: src={{ nginx_cert_path }} dest=/var/lib/dehydrated/certificates/certs/{{ item.item }}/fullchain.pem state=link
|
||
|
with_items: "{{ wh_letsencrypt_certs.results }}"
|
||
|
when:
|
||
|
- item.stat is defined
|
||
|
- not item.stat.exists
|
||
|
tags: web
|
||
|
|
||
|
- name: Link missing Let's Encrypt key to the default one (web hosting)
|
||
|
file: src={{ nginx_key_path }} dest=/var/lib/dehydrated/certificates/certs/{{ item.item }}/privkey.pem state=link
|
||
|
with_items: "{{ wh_letsencrypt_certs.results }}"
|
||
|
when:
|
||
|
- item.stat is defined
|
||
|
- not item.stat.exists
|
||
|
tags: web
|
||
|
|