From f5aa61b3c0e276aa8af0fdbf3bde70e4148f53b8 Mon Sep 17 00:00:00 2001 From: dede Date: Sat, 28 Dec 2024 10:01:34 +0100 Subject: [PATCH] !fix(docker): update docker role * update package names * remove dist install option * fix handlers for testing the setup --- roles/docker/README.md | 5 +++ roles/docker/defaults/main.yml | 2 - roles/docker/handlers/main.yml | 29 ++++++++------- roles/docker/tasks/dist.yml | 19 ---------- roles/docker/tasks/docker.yml | 47 ----------------------- roles/docker/tasks/main.yml | 68 ++++++++++++++++++++++++++++++++-- 6 files changed, 85 insertions(+), 85 deletions(-) create mode 100644 roles/docker/README.md delete mode 100644 roles/docker/defaults/main.yml delete mode 100644 roles/docker/tasks/dist.yml delete mode 100644 roles/docker/tasks/docker.yml diff --git a/roles/docker/README.md b/roles/docker/README.md new file mode 100644 index 0000000..58f49e3 --- /dev/null +++ b/roles/docker/README.md @@ -0,0 +1,5 @@ +# docker role + +this role will simply install the docker engine (community edition) from the official docker repositories. + +source: https://docs.docker.com/engine/install/debian/#install-using-the-repository diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml deleted file mode 100644 index 242e68c..0000000 --- a/roles/docker/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -docker_use_dist_repo: false diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml index d92576a..b83a619 100644 --- a/roles/docker/handlers/main.yml +++ b/roles/docker/handlers/main.yml @@ -1,17 +1,18 @@ --- - name: test docker setup - become: true - community.docker.docker_container: - state: started - name: hello-world - image: hello-world - register: docker_test - when: docker_install is changed + block: + - name: run hello-world container + become: true + register: docker_test + community.docker.docker_container: + state: started + name: hello-world + image: hello-world -- name: remove test container - become: true - community.docker.docker_container: - state: absent - name: hello-world - image: hello-world - when: docker_test is changed + - name: remove hello-world container + become: true + when: docker_test is changed + community.docker.docker_container: + state: absent + name: hello-world + image: hello-world diff --git a/roles/docker/tasks/dist.yml b/roles/docker/tasks/dist.yml deleted file mode 100644 index ab32df8..0000000 --- a/roles/docker/tasks/dist.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- name: install required packages - become: true - ansible.builtin.package: - state: present - name: - - docker.io - - curl - - ca-certificates - - gnupg - -- name: install docker compose plugin (standalone) - become: true - ansible.builtin.get_url: - url: https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 - dest: /usr/local/bin/docker-compose - mode: '0555' - owner: root - group: root diff --git a/roles/docker/tasks/docker.yml b/roles/docker/tasks/docker.yml deleted file mode 100644 index 68461d0..0000000 --- a/roles/docker/tasks/docker.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -- name: remove conflicting packages - become: true - ansible.builtin.apt: - name: - - docker.io - - docker-doc - - docker-compose - - podman-docker - - containerd - state: absent - -- name: install prerequisites - become: true - ansible.builtin.apt: - name: - - ca-certificates - - curl - - gnupg - state: present - -- name: add docker gpg key - become: true - ansible.builtin.apt_key: - url: https://download.docker.com/linux/debian/gpg - -- name: determine architecture - changed_when: false - register: docker_arch - ansible.builtin.command: - cmd: dpkg --print-architecture - -- name: add docker repo - become: true - ansible.builtin.apt_repository: - state: present - filename: docker - repo: "deb [arch={{ docker_arch.stdout }}] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable" - update_cache: true - -- name: install docker and dependencies - become: true - ansible.builtin.package: - state: present - name: - - docker - - docker-compose-plugin diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 29e7c22..fa1b072 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -1,4 +1,66 @@ --- -- name: include proper install tasks - ansible.builtin.import_tasks: - file: "{{ 'dist' if docker_use_dist_repo else 'docker' }}.yml" +- name: remove conflicting packages + become: true + ansible.builtin.apt: + state: absent + name: + - docker.io + - docker-doc + - docker-compose + - podman-docker + - containerd + +- name: install prerequisites + become: true + ansible.builtin.apt: + state: present + name: + - ca-certificates + - curl + - gnupg + +- name: ensure apt keyring directory exists + become: true + ansible.builtin.file: + state: directory + path: /etc/apt/keyrings + mode: '0755' + owner: root + group: root + +- name: download docker gpg key + become: true + ansible.builtin.get_url: + url: https://download.docker.com/linux/debian/gpg + dest: /etc/apt/keyrings/docker.asc + mode: '0644' + owner: root + group: root + +- name: determine architecture + changed_when: false + register: docker_arch + ansible.builtin.command: + cmd: dpkg --print-architecture + +- name: add docker repo + become: true + ansible.builtin.apt_repository: + state: present + filename: docker + update_cache: true + repo: > + deb [arch={{ docker_arch.stdout }} signed-by=/etc/apt/keyrings/docker.asc] + https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable + +- name: install docker + compose plugin and dependencies + become: true + notify: test docker setup + ansible.builtin.package: + state: present + name: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin