Added role for jwilder nginx proxy.
This is useful when you want to handle ssl or when you want to proxy multiple containers on a single host.
This commit is contained in:
parent
4b91b61b66
commit
593082f710
6
nginx_proxy.yml
Normal file
6
nginx_proxy.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
become: True
|
||||||
|
roles:
|
||||||
|
- docker
|
||||||
|
- nginx-proxy
|
25
roles/docker/main.yml
Normal file
25
roles/docker/main.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
# Install Docker. Centos needs te be added.
|
||||||
|
|
||||||
|
- apt_key:
|
||||||
|
id: 58118E89F3A912897C070ADBF76221572C52609D
|
||||||
|
keyserver: hkp://p80.pool.sks-keyservers.net:80
|
||||||
|
state: present
|
||||||
|
when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'xenial'
|
||||||
|
|
||||||
|
- apt_repository:
|
||||||
|
repo: deb https://apt.dockerproject.org/repo ubuntu-xenial main
|
||||||
|
update_cache: yes
|
||||||
|
when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'xenial'
|
||||||
|
|
||||||
|
- name: install docker
|
||||||
|
apt: pkg={{ item }} state=latest
|
||||||
|
with_items:
|
||||||
|
- docker-engine
|
||||||
|
- python-docker
|
||||||
|
when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'xenial'
|
||||||
|
|
||||||
|
- name: make sure service is started
|
||||||
|
systemd:
|
||||||
|
name: docker.service
|
||||||
|
state: started
|
20
roles/nginx-proxy/tasks/main.yml
Normal file
20
roles/nginx-proxy/tasks/main.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Install a nginx reverse proxy with a systemd unit file.
|
||||||
|
# See https://github.com/jwilder/nginx-proxy
|
||||||
|
---
|
||||||
|
- name: install service file.
|
||||||
|
template:
|
||||||
|
src: templates/nginx-proxy.service
|
||||||
|
dest: /etc/systemd/system/nginx-proxy.service
|
||||||
|
mode: 644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- command: systemctl daemon-reload
|
||||||
|
|
||||||
|
- name: start service at boot.
|
||||||
|
command: systemctl reenable nginx-proxy.service
|
||||||
|
|
||||||
|
- name: make sure service is started
|
||||||
|
systemd:
|
||||||
|
name: nginx-proxy.service
|
||||||
|
state: restarted
|
16
roles/nginx-proxy/templates/nginx-proxy.service
Normal file
16
roles/nginx-proxy/templates/nginx-proxy.service
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=nginx reverse proxy for docker containers.
|
||||||
|
After=docker.service
|
||||||
|
Requires=docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
TimeoutStartSec=0
|
||||||
|
Restart=always
|
||||||
|
ExecStartPre=-/usr/bin/docker kill %n
|
||||||
|
ExecStartPre=-/usr/bin/docker rm %n
|
||||||
|
ExecStart=/usr/bin/docker run --name %n \
|
||||||
|
--rm -d -p 80:80 -p 443:443 -v /srv/certs:/etc/nginx/certs \
|
||||||
|
-v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Reference in New Issue
Block a user