Playbook d'installation de Traefik.

This commit is contained in:
William 2021-06-07 23:18:38 +02:00
commit c1bc15d0a9
5 changed files with 93 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/playbook.retry
/hosts.ini

11
hosts.example.ini Normal file
View File

@ -0,0 +1,11 @@
[webservers]
example.com
[webservers:vars]
ansible_python_interpreter=/usr/bin/python3
user=ubuntu
group=docker
path=/srv/traefik
acme_email=admin@example.com

48
playbook.yml Normal file
View File

@ -0,0 +1,48 @@
---
- name: Install traefik
hosts: webservers
become: yes
tasks:
- name: Create directory
file:
path: "{{ path }}"
state: directory
owner: "{{ user }}"
group: "{{ group }}"
- name: Create acme file
file:
path: "{{ path }}/acme.json"
state: touch
mode: 0600
owner: "{{ user }}"
group: "{{ group }}"
- name: Add config file
template:
src: traefik.toml.j2
dest: "{{ path }}/traefik.toml"
mode: 0600
owner: "{{ user }}"
group: "{{ group }}"
- name: Create network
docker_network:
name: web
- name: Create container
docker_container:
name: traefik
image: traefik:2.4
restart_policy: unless-stopped
recreate: true
networks:
- name: web
ports:
- "80:80"
- "443:443"
volumes:
- "{{ path }}/traefik.toml:/etc/traefik/traefik.toml"
- "{{ path }}/acme.json:/acme.json"
- /var/run/docker.sock:/var/run/docker.sock

17
readme.md Normal file
View File

@ -0,0 +1,17 @@
# Ansible: Setup Traefik v2.x
This playbook installs Traefik on your server.
## Installing
Copy then change values of hosts example file
```bash
$ cp hosts.example.ini hosts.ini
```
Then run the playbook:
```bash
$ ansible-playbook -i hosts.ini playbook.yml
```

15
traefik.toml.j2 Normal file
View File

@ -0,0 +1,15 @@
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[providers.docker]
network = "web"
endpoint = "unix:///var/run/docker.sock"
[certificatesResolvers.letsencrypt.acme]
email = "{{ acme_email }}"
storage = "acme.json"
[certificatesResolvers.letsencrypt.acme.httpChallenge]
entryPoint = "http"