From b22c86758eaaeb54128144e5aa7d6503a7af8d4f Mon Sep 17 00:00:00 2001 From: Alexander Dahl <alex@netz39.de> Date: Sun, 21 Jan 2024 22:05:58 +0100 Subject: [PATCH] :truck: Migrate docker_host role to external project We used a similar local role here, in the Freifunk Magdeburg project, and in personal playbooks. That was moved to an external project, unified, and reworked, so the external role can act as replacement for the distributed, redundant copies. Link: https://github.com/netz39/ansible-role-host-docker --- group-docker_host.yml | 2 +- host-krypton.yml | 2 +- host-pottwal.yml | 2 +- host-radon.yml | 2 +- host-tau.yml | 2 +- host-unicorn.yml | 2 +- host-wittgenstein.yml | 2 +- requirements.yml | 3 + roles/docker_setup/defaults/main.yml | 5 -- roles/docker_setup/handlers/main.yml | 6 -- roles/docker_setup/tasks/main.yml | 91 --------------------- roles/docker_setup/templates/daemon.json.j2 | 9 -- roles/docker_setup/templates/docker.list.j2 | 2 - 13 files changed, 10 insertions(+), 120 deletions(-) delete mode 100644 roles/docker_setup/defaults/main.yml delete mode 100644 roles/docker_setup/handlers/main.yml delete mode 100644 roles/docker_setup/tasks/main.yml delete mode 100644 roles/docker_setup/templates/daemon.json.j2 delete mode 100644 roles/docker_setup/templates/docker.list.j2 diff --git a/group-docker_host.yml b/group-docker_host.yml index 15c2ed9..08cfb2c 100644 --- a/group-docker_host.yml +++ b/group-docker_host.yml @@ -3,7 +3,7 @@ become: true roles: - - role: docker_setup + - role: netz39.host_docker - hosts: docker_host:&location_space become: true diff --git a/host-krypton.yml b/host-krypton.yml index 2623afa..e9119ca 100644 --- a/host-krypton.yml +++ b/host-krypton.yml @@ -19,7 +19,7 @@ roles: - # role 'docker_setup' applied through group 'docker_host' + # role 'netz39.host_docker' applied through group 'docker_host' - role: apache - role: apache_letsencrypt # Uses configuration from dehydrated setup - role: 24367dfa.dehydrated diff --git a/host-pottwal.yml b/host-pottwal.yml index 9df71c4..ed32054 100644 --- a/host-pottwal.yml +++ b/host-pottwal.yml @@ -3,7 +3,7 @@ become: true roles: - # role 'docker_setup' applied through group 'docker_host' + # role 'netz39.host_docker' applied through group 'docker_host' - role: apache - role: apache_letsencrypt # Uses configuration from dehydrated setup - role: 24367dfa.dehydrated diff --git a/host-radon.yml b/host-radon.yml index f82edc9..93916ef 100644 --- a/host-radon.yml +++ b/host-radon.yml @@ -21,7 +21,7 @@ brotherql_host_port: 9004 roles: - # role 'docker_setup' applied through group 'docker_host' + # role 'netz39.host_docker' applied through group 'docker_host' - role: apache - role: apache_letsencrypt # Uses configuration from dehydrated setup - role: 24367dfa.dehydrated diff --git a/host-tau.yml b/host-tau.yml index 665f926..ee5e2a4 100644 --- a/host-tau.yml +++ b/host-tau.yml @@ -19,7 +19,7 @@ discord_invite_domain: discord.netz39.de roles: - # role 'docker_setup' applied through group 'docker_host' + # role 'netz39.host_docker' applied through group 'docker_host' - role: apache - role: penguineer.dehydrated_cron diff --git a/host-unicorn.yml b/host-unicorn.yml index 2ccca3a..a6fe8d5 100644 --- a/host-unicorn.yml +++ b/host-unicorn.yml @@ -7,7 +7,7 @@ data_dir: "/srv/data" roles: - # role 'docker_setup' applied through group 'docker_host' + # role 'netz39.host_docker' applied through group 'docker_host' tasks: - name: Setup the docker container for unifi-controller diff --git a/host-wittgenstein.yml b/host-wittgenstein.yml index c7a6869..5557893 100644 --- a/host-wittgenstein.yml +++ b/host-wittgenstein.yml @@ -3,7 +3,7 @@ become: true roles: - - role: docker_setup + - role: netz39.host_docker vars: docker_data_root: "/srv/docker" - role: apache diff --git a/requirements.yml b/requirements.yml index 975ae64..65bdec0 100644 --- a/requirements.yml +++ b/requirements.yml @@ -16,6 +16,9 @@ roles: version: v1.1.0 - src: lespocky.telegraf_docker_in_docker version: v0.2.1 + - name: netz39.host_docker + src: git+https://github.com/netz39/ansible-role-host-docker.git + version: v0.3.0 collections: - name: community.grafana diff --git a/roles/docker_setup/defaults/main.yml b/roles/docker_setup/defaults/main.yml deleted file mode 100644 index f1d15e3..0000000 --- a/roles/docker_setup/defaults/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -docker_compose_version: "1.25.4" -docker_compose_path: /usr/local/bin/docker-compose -docker_data_root: "/var/lib/docker" -docker_storage_driver: "overlay2" diff --git a/roles/docker_setup/handlers/main.yml b/roles/docker_setup/handlers/main.yml deleted file mode 100644 index 4e8c5a0..0000000 --- a/roles/docker_setup/handlers/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: restart docker - service: - name: docker - state: restarted - enabled: yes diff --git a/roles/docker_setup/tasks/main.yml b/roles/docker_setup/tasks/main.yml deleted file mode 100644 index 5a42436..0000000 --- a/roles/docker_setup/tasks/main.yml +++ /dev/null @@ -1,91 +0,0 @@ -# This file is a mash-up of: -# https://github.com/geerlingguy/ansible-role-docker/blob/master/tasks/docker-compose.yml -# https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-debian-9 -# and our own stuff … ---- -- name: Gather package facts - package_facts: - manager: "auto" - -- name: Exit if docker.io is installed - fail: - msg: "Please remove docker.io (Debian vanilla docker package) first!" - when: "'docker.io' in ansible_facts.packages" - -- name: Install Docker APT deps - package: - name: "{{ packages }}" - state: present - vars: - packages: - - apt-transport-https - - ca-certificates - - gnupg2 - - software-properties-common - -- name: add Docker apt-key - apt_key: - url: https://download.docker.com/linux/debian/gpg - state: present - -- name: add Docker's APT repository - ansible.builtin.template: - src: templates/docker.list.j2 - dest: /etc/apt/sources.list.d/docker.list - register: apt_repo - -- name: Update package cache # noqa: no-handler - ansible.builtin.apt: - update_cache: true - when: apt_repo.changed - -- name: install Docker - package: - name: "{{ packages }}" - state: present - vars: - packages: - - docker-ce - - python3-docker - -- name: Set docker configuration - template: - src: templates/daemon.json.j2 - dest: /etc/docker/daemon.json - mode: "0644" - notify: restart docker - -- name: Check current docker-compose version. - command: docker-compose --version - register: docker_compose_current_version - changed_when: false - failed_when: false - -- name: Delete existing docker-compose version if it's different. - file: - path: "{{ docker_compose_path }}" - state: absent - when: > - docker_compose_current_version.stdout is defined - and docker_compose_version not in docker_compose_current_version.stdout - -- name: Install Docker Compose (if configured). - get_url: - url: https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64 - dest: "{{ docker_compose_path }}" - mode: "0755" - -- name: Place admin users in docker group - user: - name: "{{ item.logname }}" - groups: [docker] - append: yes - when: item.docker - with_items: "{{ users }}" - -- name: Ensure that docker image prune cron job is present. - ansible.builtin.cron: - name: docker image prune - special_time: weekly - user: root - job: "docker image prune --all --force" diff --git a/roles/docker_setup/templates/daemon.json.j2 b/roles/docker_setup/templates/daemon.json.j2 deleted file mode 100644 index ee43392..0000000 --- a/roles/docker_setup/templates/daemon.json.j2 +++ /dev/null @@ -1,9 +0,0 @@ -{ - "exec-opts": ["native.cgroupdriver=systemd"], - "log-driver": "json-file", - "log-opts": { - "max-size": "100m" - }, - "data-root": "{{ docker_data_root }}", - "storage-driver": "{{ docker_storage_driver }}" -} diff --git a/roles/docker_setup/templates/docker.list.j2 b/roles/docker_setup/templates/docker.list.j2 deleted file mode 100644 index 7795847..0000000 --- a/roles/docker_setup/templates/docker.list.j2 +++ /dev/null @@ -1,2 +0,0 @@ -deb https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable -