Add docker role for making sure Docker is installed

Add a docker role for making sure Docker is installed from the Docker
repositories.
Take the role from the ccchh-ansible repo, provide attribution in the
README and add the relevant license in a new licenses directory.
Modify the role by removing the distribution check and adjusting the
task names to be in line with other task names in this repo.
This commit is contained in:
Julian Schacher
2023-11-24 13:37:40 +01:00
parent 7ddb91550f
commit 75acd59ee8
6 changed files with 81 additions and 0 deletions

6
README.md Normal file
View File

@@ -0,0 +1,6 @@
# cit Ansible Infrastructure
## Open Source Software Used
Source code of the [docker role](playbooks/roles/docker) was taken from the [ccchh-ansible repo](https://gitlab.hamburg.ccc.de/ccchh/thinkcccentre-ansible), where it was licensed under the MIT license.
A copy of the license can be found under [`licenses/ccchh-ansible_mit_license`](licenses/ccchh-ansible_mit_license).

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 ccchh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,21 @@
# Role `docker`
Makes sure Docker Engine and other related packages are installed from the Docker repos on the specified hosts.
For details see: [`tasks/main/02_docker_install.yaml`](./tasks/main/02_docker_install.yaml).
## Required Arguments
None.
## Updates
This role doesn't handle updates.
However it uses the system package manager for installing Docker Engine and the other related packages, so when you're making sure the system packages are up-to-date, you're handling updates for the packages installed by this role as well.
## `hosts`
The `hosts` for this role need to be the machines for which you want to make sure Docker Engine and other related packages are installed from the Docker repos.
## Links & Resources
- <https://docs.docker.com/engine/install/debian/>

View File

@@ -0,0 +1,7 @@
- name: Ensure the Docker repo is setup
ansible.builtin.import_tasks:
file: main/01_repo_setup.yaml
- name: Ensure Docker Engine and other related packages are installed
ansible.builtin.import_tasks:
file: main/02_docker_install.yaml

View File

@@ -0,0 +1,15 @@
- name: Ensure Dockers GPG key is added
ansible.builtin.get_url:
url: https://download.docker.com/linux/debian/gpg
dest: /etc/apt/trusted.gpg.d/docker.asc
mode: "0644"
owner: root
group: root
become: true
- name: Ensure Dockers APT repository is added
ansible.builtin.apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.asc] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable"
filename: docker
state: present
become: true

View File

@@ -0,0 +1,11 @@
- name: Ensure Docker Engine and other related packages are installed
ansible.builtin.apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: present
update_cache: true
become: true