---
-# tasks file for docker-install
+- name: Install Docker (RedHat)
+ block:
+ - name: Install Docker requirements
+ yum: 'name={{item}} state=present'
+ with_items:
+ - device-mapper-persistent-data
+ - lvm2
+ - name: Add Docker repository
+ get_url:
+ url: https://download.docker.com/linux/centos/docker-ce.repo
+ dest: /etc/yum.repos.d/docker-ce.repo
+ mode: 0644
+ - name: Install Docker CE
+ yum: name=docker-ce state=present update_cache=yes
+ when: ansible_os_family == 'RedHat'
+ become: true
+
+- name: Install Docker (Ubuntu)
+ block:
+ - name: Install Docker requirements
+ apt: 'name=apt-transport-https state=present'
+ - name: Add Docker apt-key
+ apt_key:
+ url: https://download.docker.com/linux/ubuntu/gpg
+ state: present
+ - name: Add Docker apt-repository
+ apt_repository:
+ repo: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ansible_distribution_release}} stable'
+ state: present
+ - name: Install Docker CE
+ apt: name=docker-ce state=present update_cache=yes
+ when: ansible_distribution == 'Ubuntu'
+ become: true
+
+- name: Copy LF Docker configuration
+ block:
+ - name: Ensure /etc/docker directory exists
+ file:
+ path: /etc/docker
+ state: directory
+ mode: 0700
+ - name: Copy LF Docker configuration
+ copy:
+ src: daemon.json
+ dest: /etc/docker/daemon.json
+ owner: root
+ group: root
+ mode: 0600
+ - name: 'Set mtu to {{mtu}}'
+ lineinfile:
+ path: /etc/docker/daemon.json
+ regexp: '^ "mtu":'
+ line: ' "mtu": {{mtu}},'
+ become: true
+
+# The systemd file on Ubuntu system passes `-H fd://` which seems to break
+# and prevent Docker from coming online. Use the same ExecStart line as
+# Docker CE CentOS does to fix the file.
+- name: Fix broken systemd file on Ubuntu
+ lineinfile:
+ path: /lib/systemd/system/docker.service
+ regexp: '^ExecStart='
+ line: 'ExecStart=/usr/bin/dockerd'
+ when: ansible_distribution == 'Ubuntu'
+ become: true
+
+- name: Enable Docker service
+ service: name=docker enabled=true
+ become: true