Skip to content

Commit 146d6b1

Browse files
Merge branch 'geerlingguy:master' into straysheep-dev/patch-kali-support
2 parents 4bebb3f + 94b7873 commit 146d6b1

File tree

9 files changed

+106
-13
lines changed

9 files changed

+106
-13
lines changed

README.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Ansible Role: Docker
22

3-
[![CI](https://github.com/geerlingguy/ansible-role-docker/workflows/CI/badge.svg?event=push)](https://github.com/geerlingguy/ansible-role-docker/actions?query=workflow%3ACI)
3+
[![CI](https://github.com/geerlingguy/ansible-role-docker/actions/workflows/ci.yml/badge.svg)](https://github.com/geerlingguy/ansible-role-docker/actions/workflows/ci.yml)
44

55
An Ansible Role that installs [Docker](https://www.docker.com) on Linux.
66

@@ -34,11 +34,19 @@ docker_obsolete_packages:
3434
- docker
3535
- docker.io
3636
- docker-engine
37+
- docker-doc
38+
- docker-compose
39+
- docker-compose-v2
3740
- podman-docker
3841
- containerd
3942
- runc
4043
```
4144

45+
`docker_obsolete_packages` for different os-family:
46+
47+
- [`RedHat.yaml`](./vars/RedHat.yml)
48+
- [`Debian.yaml`](./vars/Debian.yml)
49+
4250
A list of packages to be uninstalled prior to running this role. See [Docker's installation instructions](https://docs.docker.com/engine/install/debian/#uninstall-old-versions) for an up-to-date list of old packages that should be removed.
4351

4452
```yaml
@@ -60,7 +68,7 @@ Docker Compose Plugin installation options. These differ from the below in that
6068

6169
```yaml
6270
docker_install_compose: false
63-
docker_compose_version: "2.29.2"
71+
docker_compose_version: "v2.32.1"
6472
docker_compose_arch: "{{ ansible_architecture }}"
6573
docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}"
6674
docker_compose_path: /usr/local/bin/docker-compose
@@ -83,7 +91,7 @@ The main Docker repo URL, common between Debian and RHEL systems.
8391
```yaml
8492
docker_apt_release_channel: stable
8593
docker_apt_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
86-
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] {{ docker_repo_url }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
94+
docker_apt_repository: "deb [arch={{ docker_apt_arch }}{{' signed-by=/etc/apt/keyrings/docker.asc' if add_repository_key is not failed}}] {{ docker_repo_url }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
8795
docker_apt_ignore_key_error: True
8896
docker_apt_gpg_key: "{{ docker_repo_url }}/{{ ansible_distribution | lower }}/gpg"
8997
docker_apt_filename: "docker"
@@ -98,7 +106,7 @@ Usually in combination with changing `docker_apt_repository` as well. `docker_ap
98106
docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo"
99107
docker_yum_repo_enable_nightly: '0'
100108
docker_yum_repo_enable_test: '0'
101-
docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg"
109+
docker_yum_gpg_key: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora', 'centos') }}/gpg"
102110
```
103111

104112
(Used only for RedHat/CentOS.) You can enable the Nightly or Test repo by setting the respective vars to `1`.

defaults/main.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ docker_obsolete_packages:
1212
- docker
1313
- docker.io
1414
- docker-engine
15+
- docker-doc
16+
- docker-compose
17+
- docker-compose-v2
1518
- podman-docker
1619
- containerd
1720
- runc
@@ -29,7 +32,7 @@ docker_compose_package_state: present
2932

3033
# Docker Compose options.
3134
docker_install_compose: false
32-
docker_compose_version: "v2.29.2"
35+
docker_compose_version: "v2.32.1"
3336
docker_compose_arch: "{{ ansible_architecture }}"
3437
docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}"
3538
docker_compose_path: /usr/local/bin/docker-compose
@@ -57,7 +60,7 @@ docker_apt_filename: "docker"
5760
docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo"
5861
docker_yum_repo_enable_nightly: '0'
5962
docker_yum_repo_enable_test: '0'
60-
docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg"
63+
docker_yum_gpg_key: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora', 'centos') }}/gpg"
6164

6265
# A list of users who will be added to the docker group.
6366
docker_users: []

molecule/default/converge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
- name: Converge
33
hosts: all
4-
become: true
4+
# become: true
55

66
pre_tasks:
77
- name: Update apt cache.

molecule/default/verify.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
- name: Verify Docker Role
3+
hosts: all
4+
tasks:
5+
- name: Verify Docker binary is available
6+
command: docker version
7+
register: docker_version_result
8+
changed_when: false
9+
failed_when: docker_version_result.rc != 0
10+
11+
- name: Show Docker version details
12+
debug:
13+
msg: >
14+
Docker Version Output:
15+
{{ docker_version_result.stdout_lines | join('\n') }}
16+
17+
- name: Verify Docker service is running
18+
command: systemctl is-active docker
19+
register: docker_service_status
20+
when: ansible_service_mgr == 'systemd'
21+
changed_when: false
22+
failed_when: docker_service_status.stdout.strip() != "active"
23+
24+
- name: Display Docker service status
25+
debug:
26+
msg: "Docker service is {{ docker_service_status.stdout.strip() }}"
27+
when: ansible_service_mgr == 'systemd'
28+
29+
- name: Pull the 'hello-world' image
30+
command: docker pull hello-world
31+
register: docker_pull_result
32+
changed_when: true
33+
failed_when: docker_pull_result.rc != 0
34+
35+
- name: Show result of pulling the 'hello-world' image
36+
debug:
37+
msg: >
38+
Pulling 'hello-world' completed with output:
39+
{{ docker_pull_result.stdout_lines | join('\n') }}
40+
41+
- name: Run a test container (hello-world)
42+
command: docker run --rm hello-world
43+
register: docker_run_result
44+
changed_when: true
45+
failed_when: docker_run_result.rc != 0
46+
47+
- name: Display test container output
48+
debug:
49+
msg: >
50+
Running 'hello-world' container completed with output:
51+
{{ docker_run_result.stdout_lines | join('\n') }}

tasks/setup-Debian.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
path: /etc/apt/trusted.gpg.d/docker.asc
55
state: absent
66

7+
- name: Ensure old apt source list is not present in /etc/apt/sources.list.d
8+
ansible.builtin.file:
9+
path: "/etc/apt/sources.list.d/download_docker_com_linux_{{ docker_apt_ansible_distribution | lower }}.list"
10+
state: absent
11+
712
- name: Ensure the repo referencing the previous trusted.gpg.d key is not present
813
apt_repository:
914
repo: "deb [arch={{ docker_apt_arch }} signed-by=/etc/apt/trusted.gpg.d/docker.asc] {{ docker_repo_url }}/{{ docker_apt_ansible_distribution | lower }} {{ docker_apt_ansible_distribution_release }} {{ docker_apt_release_channel }}"
@@ -30,13 +35,13 @@
3035
file:
3136
path: /etc/apt/keyrings
3237
state: directory
33-
mode: '0755'
38+
mode: "0755"
3439

3540
- name: Add Docker apt key.
3641
ansible.builtin.get_url:
3742
url: "{{ docker_apt_gpg_key }}"
3843
dest: /etc/apt/keyrings/docker.asc
39-
mode: '0644'
44+
mode: "0644"
4045
force: false
4146
checksum: "{{ docker_apt_gpg_key_checksum | default(omit) }}"
4247
register: add_repository_key

tasks/setup-RedHat.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
---
22
- name: Ensure old versions of Docker are not installed.
33
package:
4-
name:
5-
- docker
6-
- docker-common
7-
- docker-engine
4+
name: "{{ docker_obsolete_packages }}"
85
state: absent
96

107
- name: Add Docker GPG key.

vars/Alpine.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
---
22
docker_packages: "docker"
3+
docker_compose_package: docker-cli-compose

vars/Debian.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
# Used only for Debian/Ubuntu (Debian OS-Family)
3+
# https://docs.docker.com/engine/install/debian/#uninstall-old-versions
4+
5+
docker_obsolete_packages:
6+
- docker
7+
- docker.io
8+
- docker-engine
9+
- docker-doc
10+
- docker-compose
11+
- docker-compose-v2
12+
- podman-docker
13+
- containerd
14+
- runc

vars/RedHat.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
# Used only for Fedora/Rocky (RedHat OS-Family)
3+
# https://docs.docker.com/engine/install/fedora/#uninstall-old-versions
4+
# https://docs.docker.com/engine/install/centos/#uninstall-old-versions
5+
6+
docker_obsolete_packages:
7+
- docker
8+
- docker-client
9+
- docker-client-latest
10+
- docker-common
11+
- docker-latest
12+
- docker-latest-logrotate
13+
- docker-logrotate
14+
- docker-engine

0 commit comments

Comments
 (0)