diff --git a/tasks/docker.yml b/tasks/docker.yml new file mode 100644 index 0000000..980ae20 --- /dev/null +++ b/tasks/docker.yml @@ -0,0 +1,91 @@ +# 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 + +- 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" + } + } + register: docker_config + +- name: Restart docker for changed configuration + service: + name: docker + state: restarted + enabled: yes + when: docker_config.changed + +- 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: "{{ admin_users }}"