From 1a50bbdfc72e54f92523d3ad37018a872aa69f1d Mon Sep 17 00:00:00 2001 From: Stefan Haun Date: Wed, 25 Nov 2020 16:55:50 +0100 Subject: [PATCH] Add docker installation as role --- roles/install-docker/handlers/main.yml | 6 ++ roles/install-docker/tasks/main.yml | 85 ++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 roles/install-docker/handlers/main.yml create mode 100644 roles/install-docker/tasks/main.yml diff --git a/roles/install-docker/handlers/main.yml b/roles/install-docker/handlers/main.yml new file mode 100644 index 0000000..4e8c5a0 --- /dev/null +++ b/roles/install-docker/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: restart docker + service: + name: docker + state: restarted + enabled: yes diff --git a/roles/install-docker/tasks/main.yml b/roles/install-docker/tasks/main.yml new file mode 100644 index 0000000..4590f0a --- /dev/null +++ b/roles/install-docker/tasks/main.yml @@ -0,0 +1,85 @@ +# This file is a mash-up of: +# https://github.com/geerlingguy/ansible-role-docker/blob/master/tasks/docker-compose.yml +# https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-debian-9 +# and our own stuff … +--- +- name: Gather package facts + package_facts: + manager: "auto" + +- name: Exit if docker.io is installed + fail: + msg: "Please remove docker.io (Debian vanilla docker package) first!" + when: "'docker.io' in ansible_facts.packages" + +- name: Install Docker APT deps + package: + name: "{{ packages }}" + state: present + vars: + packages: + - apt-transport-https + - ca-certificates + - gnupg2 + - software-properties-common + +- name: add Docker apt-key + apt_key: + url: https://download.docker.com/linux/debian/gpg + state: present + +- name: add Docker's APT repository + apt_repository: + repo: deb https://download.docker.com/linux/debian buster stable + state: present + update_cache: true + filename: 'docker' + +- name: install Docker + package: + name: "{{ packages }}" + state: present + vars: + packages: + - docker-ce + - python-docker + +- name: Set docker configuration + copy: + dest: /etc/docker/daemon.json + content: | + { + "exec-opts": ["native.cgroupdriver=systemd"], + "log-driver": "json-file", + "log-opts": { + "max-size": "100m" + } + } + notify: restart docker + +- name: Check current docker-compose version. + command: docker-compose --version + register: docker_compose_current_version + changed_when: false + failed_when: false + +- name: Delete existing docker-compose version if it's different. + file: + path: "{{ docker_compose_path }}" + state: absent + when: > + docker_compose_current_version.stdout is defined + and docker_compose_version not in docker_compose_current_version.stdout + +- name: Install Docker Compose (if configured). + get_url: + url: https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64 + dest: "{{ docker_compose_path }}" + mode: 0755 + +- name: Place admin users in docker group + user: + name: "{{ item }}" + groups: docker + append: yes + with_items: "{{ docker_users }}"