88 lines
2.2 KiB
YAML
88 lines
2.2 KiB
YAML
---
|
|
- name: Setup server
|
|
hosts: all
|
|
become: yes
|
|
|
|
tasks:
|
|
- name: Install required system packages
|
|
apt:
|
|
name: [
|
|
'apt-transport-https',
|
|
'ca-certificates',
|
|
'software-properties-common',
|
|
'python3-pip',
|
|
]
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Add Docker GPG apt Key
|
|
apt_key:
|
|
url: https://download.docker.com/linux/ubuntu/gpg
|
|
state: present
|
|
|
|
- name: Add Docker Repository
|
|
apt_repository:
|
|
repo: "deb [arch=amd64] https://download.docker.com/{{ ansible_system | lower }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
|
|
state: present
|
|
|
|
- name: Update apt and install Docker
|
|
apt:
|
|
name: [
|
|
'docker-ce',
|
|
'docker-ce-cli',
|
|
'containerd.io',
|
|
]
|
|
state: latest
|
|
update_cache: yes
|
|
|
|
- name: Add the Python client for Docker
|
|
pip:
|
|
name: [
|
|
'docker',
|
|
'docker-compose'
|
|
]
|
|
|
|
- name: Install docker-compose
|
|
get_url:
|
|
url : https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64
|
|
dest: /usr/local/bin/docker-compose
|
|
mode: 'u+x,g+x'
|
|
group: docker
|
|
|
|
- name: Create Traefik directory
|
|
file:
|
|
path: "{{ working_dir }}/traefik"
|
|
state: directory
|
|
|
|
- name: Create Acme file
|
|
file:
|
|
path: "{{ working_dir }}/traefik/acme.json"
|
|
state: touch
|
|
mode: 0600
|
|
|
|
- name: Build Traefik config file
|
|
template:
|
|
src: ../templates/traefik.yml.j2
|
|
dest: "{{ working_dir }}/traefik/traefik.yml"
|
|
|
|
- name: Create global network
|
|
docker_network:
|
|
name: web
|
|
|
|
- name: Build Traefik docker-compose file
|
|
template:
|
|
src: ../templates/traefik-docker-compose.yml.j2
|
|
dest: '{{ working_dir }}/traefik/docker-compose.yml'
|
|
|
|
- name: Run Traefik container
|
|
community.docker.docker_compose:
|
|
project_src: "{{ working_dir }}/traefik"
|
|
build: yes
|
|
files:
|
|
- docker-compose.yml
|
|
restarted: yes
|
|
register: output
|
|
|
|
- debug:
|
|
var: output
|