self-hosting/roles/docker/tasks/main.yml
Paul-Henri Froidmont e0b240c7bd Install docker 18.06
2018-09-20 00:35:06 +02:00

93 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'
# TODO fix this - fails when ip route is using tun0 in scaleway
- name: Explictly create docker0
shell: |
ip link add name docker0 type bridge || true
ip addr add dev docker0 172.17.0.1/16 || true
- 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
- name: Printing Docker version
debug: var=docker_version
when: ansible_distribution == "Ubuntu"