!fix(docker): update docker role

* update package names
* remove dist install option
* fix handlers for testing the setup
This commit is contained in:
2024-12-28 10:01:34 +01:00
parent d5b99433d8
commit f5aa61b3c0
6 changed files with 85 additions and 85 deletions

5
roles/docker/README.md Normal file
View File

@@ -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

View File

@@ -1,2 +0,0 @@
---
docker_use_dist_repo: false

View File

@@ -1,17 +1,18 @@
---
- name: test docker setup
block:
- name: run hello-world container
become: true
register: docker_test
community.docker.docker_container:
state: started
name: hello-world
image: hello-world
register: docker_test
when: docker_install is changed
- name: remove test container
- name: remove hello-world container
become: true
when: docker_test is changed
community.docker.docker_container:
state: absent
name: hello-world
image: hello-world
when: docker_test is changed

View File

@@ -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

View File

@@ -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

View File

@@ -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