mirror of
https://github.com/phfroidmont/self-hosting.git
synced 2025-12-25 05:36:59 +01:00
94 lines
2.4 KiB
YAML
94 lines
2.4 KiB
YAML
---
|
|
- name: Docker installation for Ubuntu distribution
|
|
block:
|
|
|
|
- name: Ensure docker packages are not present
|
|
apt:
|
|
state: absent
|
|
name: ['docker', 'docker-engine', 'docker.io']
|
|
|
|
- name: Install docker package dependencies
|
|
apt:
|
|
state: latest
|
|
name: ['apt-transport-https', 'ca-certificates', 'curl', 'software-properties-common']
|
|
update_cache: yes
|
|
cache_valid_time: 86400
|
|
register: result
|
|
retries: 3
|
|
until: result is success
|
|
|
|
- name: Adding Docker official gpg key
|
|
apt_key:
|
|
url: "{{ docker_apt_key }}"
|
|
state: present
|
|
|
|
- name: Setting Docker repository depending on arch
|
|
set_fact:
|
|
docker_repository: "deb [arch={{ item.apt_arch }}] {{ docker_apt_repository }} {{ ansible_distribution_release }} {{ docker_apt_channel }}"
|
|
when: ansible_architecture == item.system_arch
|
|
with_items:
|
|
- { system_arch: 'x86_64', apt_arch: 'amd64' }
|
|
- { system_arch: 'arm', apt_arch: 'armhf' }
|
|
|
|
- name: Printing Docker repository
|
|
debug:
|
|
var: docker_repository
|
|
|
|
- name: Adding Docker repository
|
|
apt_repository:
|
|
repo: "{{ docker_repository }}"
|
|
state: present
|
|
filename: 'docker'
|
|
|
|
- name: Explicitly create docker0
|
|
shell: |
|
|
ip link add name docker0 type bridge || true
|
|
ip addr add dev docker0 172.17.0.1/16 || true
|
|
changed_when: no
|
|
|
|
- name: Install docker-ce
|
|
apt:
|
|
name: docker-ce={{ docker_version }}
|
|
update_cache: yes
|
|
register: result
|
|
retries: 3
|
|
until: result is success
|
|
|
|
- name: Pin docker-ce release
|
|
copy:
|
|
dest: /etc/apt/preferences.d/docker-ce
|
|
content: |
|
|
Package: docker-ce
|
|
Pin: version {{ docker_version }}
|
|
Pin-Priority: 1002
|
|
|
|
- name: Fixing systemd unit for Docker config file
|
|
template:
|
|
src: docker.service.j2
|
|
dest: /lib/systemd/system/docker.service
|
|
notify: reload systemd
|
|
|
|
- name: Create docker config directory
|
|
file:
|
|
path: /etc/docker
|
|
mode: 0700
|
|
recurse: yes
|
|
|
|
- name: Templating /etc/docker/daemon.json
|
|
template:
|
|
src: daemon.json.j2
|
|
dest: /etc/docker/daemon.json
|
|
notify: restart docker
|
|
|
|
- name: Flushing handlers 2
|
|
meta: flush_handlers
|
|
|
|
- name: Getting Docker version
|
|
shell: "docker --version"
|
|
register: docker_version
|
|
changed_when: no
|
|
|
|
- name: Printing Docker version
|
|
debug: var=docker_version
|
|
|
|
when: ansible_distribution == "Ubuntu"
|