!fix(docker): update docker role
* update package names * remove dist install option * fix handlers for testing the setup
This commit is contained in:
5
roles/docker/README.md
Normal file
5
roles/docker/README.md
Normal 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
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
docker_use_dist_repo: false
|
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
---
|
---
|
||||||
- name: test docker setup
|
- name: test docker setup
|
||||||
become: true
|
block:
|
||||||
community.docker.docker_container:
|
- name: run hello-world container
|
||||||
state: started
|
become: true
|
||||||
name: hello-world
|
register: docker_test
|
||||||
image: hello-world
|
community.docker.docker_container:
|
||||||
register: docker_test
|
state: started
|
||||||
when: docker_install is changed
|
name: hello-world
|
||||||
|
image: hello-world
|
||||||
|
|
||||||
- name: remove test container
|
- name: remove hello-world container
|
||||||
become: true
|
become: true
|
||||||
community.docker.docker_container:
|
when: docker_test is changed
|
||||||
state: absent
|
community.docker.docker_container:
|
||||||
name: hello-world
|
state: absent
|
||||||
image: hello-world
|
name: hello-world
|
||||||
when: docker_test is changed
|
image: hello-world
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -1,4 +1,66 @@
|
|||||||
---
|
---
|
||||||
- name: include proper install tasks
|
- name: remove conflicting packages
|
||||||
ansible.builtin.import_tasks:
|
become: true
|
||||||
file: "{{ 'dist' if docker_use_dist_repo else 'docker' }}.yml"
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user