11 Commits
1.4.1 ... 1.4.2

Author SHA1 Message Date
Emilien Mantel
3da65983bd Fix acme create 2018-03-22 20:35:51 +01:00
Emilien Mantel
3fb8f092fb Fake site + force IPv6 2018-03-22 20:30:10 +01:00
Emilien Mantel
19a85ca381 Autoconfigure ipv6 on fakesite 2018-03-22 19:48:41 +01:00
Emilien Mantel
2bab49221a Autoconfigure IPv6 on each server 2018-03-22 19:47:30 +01:00
Emilien Mantel
6e877c070e Configure nginx restart with acme.sh 2018-03-22 19:03:33 +01:00
Emilien Mantel
c165f88126 Manage multiple names with acme.sh 2018-03-22 18:43:44 +01:00
Emilien Mantel
59dd3997de Acme uses light fake sites 2018-03-22 18:39:10 +01:00
Emilien Mantel
ae6dc88bc4 Delete current site when playing with acme.sh 2018-03-22 17:49:02 +01:00
Emilien Mantel
6719b415ab Fix playbook crash whith acme and multiple domain 2018-03-22 17:47:53 +01:00
Emilien Mantel
fd21603a4d Fix FreeBSD version for galaxy 2018-03-18 12:37:27 +01:00
Emilien Mantel
f52be2bbf3 Add FreeBSD in meta/main.yml 2018-03-17 14:52:14 +01:00
6 changed files with 31 additions and 11 deletions

View File

@@ -11,7 +11,9 @@ galaxy_info:
- jessie
- name: FreeBSD
versions:
- 10.2
- 11.0
- 11.1
- 12.0
galaxy_tags:
- web
- proxy

View File

@@ -13,17 +13,24 @@
- name: SET_FACT | Assign var with certificates to create
set_fact:
acme_create: "{{ acme_create | default([]) + [ (item.item | combine({'listen': ([item.item.acme_port|default(80)]) }) ) ] }}"
acme_create: "{{ acme_create | default([]) + [ (item.item) ] }}"
with_items: "{{ acme_installed_certs.results }}"
when: item.skipped is not defined and not item.stat.exists
- name: TEMPLATE | Create fake site
template:
src: "etc/nginx/sites-available/_base.j2"
src: "etc/nginx/conf.d/FAKESITE.conf.j2"
dest: "{{ nginx_etc_dir }}/conf.d/FAKESITE_{{ item | nginx_site_name }}.conf"
with_items: "{{ acme_create }}"
register: fake_site
- name: FILE | Delete current site if needed
file:
path: "{{ nginx_etc_dir }}/sites-enabled/{{ item | nginx_site_name }}"
state: absent
with_items: "{{ acme_create }}"
when: fake_site.changed
- name: SERVICE | Restart nginx
service:
name: nginx
@@ -49,7 +56,7 @@
with_items: "{{ acme_create }}"
- name: SHELL | Install certificates
shell: '{{ nginx_acmesh_bin }} --install-cert -d {{ item | nginx_site_name }} --fullchain-file {{ nginx_ssl_dir }}/{{ item | nginx_site_name }}/{{ item | nginx_site_name }}.crt --key-file {{ nginx_ssl_dir }}/{{ item | nginx_site_name }}/{{ item | nginx_site_name }}.key'
shell: '{{ nginx_acmesh_bin }} --install-cert -d {{ item | nginx_site_name }} --fullchain-file {{ nginx_ssl_dir }}/{{ item | nginx_site_name }}/{{ item | nginx_site_name }}.crt --key-file {{ nginx_ssl_dir }}/{{ item | nginx_site_name }}/{{ item | nginx_site_name }}.key --reloadcmd "service nginx restart"'
args:
creates: "{{ nginx_ssl_dir }}/{{ item | nginx_site_name }}/{{ item | nginx_site_name }}.key"
with_items: "{{ nginx_ssl_pairs }}"

View File

@@ -18,7 +18,7 @@
- name: FILE | Create SSL directories
file:
path: "{{ nginx_ssl_dir + '/' + item.name }}"
path: "{{ nginx_ssl_dir + '/' + item | nginx_site_name }}"
state: directory
with_items: "{{ nginx_ssl_pairs }}"
when: item.dest_key is not defined or item.dest_cert is not defined
@@ -27,7 +27,7 @@
- name: COPY | Deploy SSL keys
copy:
content: "{{ item.key }}"
dest: "{{ nginx_ssl_dir + '/' + item.name + '/' + item.name + '.key' if item.dest_key is not defined else item.dest_key }}"
dest: "{{ nginx_ssl_dir + '/' + item | nginx_site_name + '/' + item | nginx_site_name + '.key' if item.dest_key is not defined else item.dest_key }}"
mode: 0640
with_items: "{{ nginx_ssl_pairs }}"
when: item.key is defined
@@ -37,7 +37,7 @@
- name: COPY | Deploy SSL certs
copy:
content: "{{ item.cert }}"
dest: "{{ nginx_ssl_dir + '/' + item.name + '/' + item.name + '.crt' if item.dest_cert is not defined else item.dest_cert }}"
dest: "{{ nginx_ssl_dir + '/' + item | nginx_site_name + '/' + item | nginx_site_name + '.crt' if item.dest_cert is not defined else item.dest_cert }}"
mode: 0644
with_items: "{{ nginx_ssl_pairs }}"
when: item.cert is defined

View File

@@ -0,0 +1,10 @@
server {
listen {{ item.acme_port | default('80') }};
listen [::]:{{ item.acme_port | default('80') }};
server_name {% if item.name is string %}{{ item.name }}{% else %}{{ item.name | join(" ") }}{% endif %}{% if item.redirect_from is defined %} {% if item.redirect_from is string %}{{ item.redirect_from }}{% else %}{{ item.redirect_from | join(" ") }}{% endif %}{% endif %};
location / {
return 503;
}
}

View File

@@ -1,7 +1,7 @@
{% set __proto = item.proto | default(['http']) %}
{% set __main_name = item | nginx_site_filename %}
{% set __listen = item.listen | default([80]) %}
{% set __listen_ssl = item.listen_ssl | default([443]) %}
{% set __listen = item.listen | default(['80', '[::]:80']) %}
{% set __listen_ssl = item.listen_ssl | default(['443', '[::]:443']) %}
{% set __http_proxy_protocol_port = item.http_proxy_protocol_port | default([]) %}
{% set __https_proxy_protocol_port = item.https_proxy_protocol_port | default([]) %}
{% set __location = item.location | default({}) %}
@@ -17,7 +17,7 @@
{%- endif %}
{%- endmacro %}
{% macro ssl(ssl_name) %}
{% for sn in nginx_ssl_pairs if sn.name == ssl_name %}
{% for sn in nginx_ssl_pairs if ((sn.name is string and sn.name == ssl_name) or (sn.name.0 == ssl_name)) %}
ssl_certificate {{ nginx_ssl_dir + '/' + ssl_name + '/' + ssl_name + '.crt' if sn.dest_cert is not defined else sn.dest_cert }};
ssl_certificate_key {{ nginx_ssl_dir + '/' + ssl_name + '/' + ssl_name + '.key' if sn.dest_key is not defined else sn.dest_key }};
{% endfor %}

View File

@@ -72,7 +72,8 @@
nginx_acmesh: true
nginx_acmesh_test: true
nginx_ssl_pairs:
- name: '{{ ngrok.stdout }}'
- name:
- '{{ ngrok.stdout }}'
acme: true
acme_port: 8888
- name: 'test-ssl-predeployed.local'