From bd00be2a5c58d160540190ba40ecf3c80cfa7804 Mon Sep 17 00:00:00 2001 From: aleidk Date: Thu, 12 Dec 2024 12:39:15 -0300 Subject: [PATCH 1/2] refactor: separate common setup and docker setup --- hosts/inventory.yaml | 3 +++ playbooks/setup/alpine.yaml | 33 --------------------------------- playbooks/setup/docker.yaml | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 playbooks/setup/docker.yaml diff --git a/hosts/inventory.yaml b/hosts/inventory.yaml index 1d41796..8793944 100644 --- a/hosts/inventory.yaml +++ b/hosts/inventory.yaml @@ -3,6 +3,9 @@ homelab: docker: docker: + vars: + robo_allowed_commands: + - "docker system dial-stdio" children: docker_managers: docker_workers: diff --git a/playbooks/setup/alpine.yaml b/playbooks/setup/alpine.yaml index d2e4977..cf6ed98 100644 --- a/playbooks/setup/alpine.yaml +++ b/playbooks/setup/alpine.yaml @@ -46,36 +46,3 @@ user: root roles: - role: common - vars: - robo_allowed_commands: - - "docker system dial-stdio" - -- name: Setup Docker - hosts: docker - user: root - roles: - - docker - vars: - users: - - aleidk - - robo - -- name: Setup docker swarm manager - hosts: docker_managers - user: root - tasks: - - name: Setup swarm manager - include_role: - name: docker - tasks_from: swarm_manager.yaml - -- name: Setup docker swarm workers - hosts: docker_workers - user: root - tasks: - - name: "Setup swarm workers" - include_role: - name: docker - tasks_from: swarm_worker.yaml - vars: - managers_group: docker_managers diff --git a/playbooks/setup/docker.yaml b/playbooks/setup/docker.yaml new file mode 100644 index 0000000..d5c809a --- /dev/null +++ b/playbooks/setup/docker.yaml @@ -0,0 +1,32 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/ansible/ansible-lint/refs/heads/main/src/ansiblelint/schemas/playbook.json + +--- +- name: Setup Docker + hosts: docker + user: root + roles: + - docker + vars: + users: + - aleidk + - robo + +- name: Setup docker swarm manager + hosts: docker_managers + user: root + tasks: + - name: Setup swarm manager + include_role: + name: docker + tasks_from: swarm_manager.yaml + +- name: Setup docker swarm workers + hosts: docker_workers + user: root + tasks: + - name: "Setup swarm workers" + include_role: + name: docker + tasks_from: swarm_worker.yaml + vars: + managers_group: docker_managers From 73e4d7fd193651e076c6431fae9938db275ea1be Mon Sep 17 00:00:00 2001 From: aleidk Date: Thu, 12 Dec 2024 13:04:04 -0300 Subject: [PATCH 2/2] feat: add docker teardown playbook this playbook only removes swarm configurations, not the docker installation --- playbooks/teardown/docker.yaml | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 playbooks/teardown/docker.yaml diff --git a/playbooks/teardown/docker.yaml b/playbooks/teardown/docker.yaml new file mode 100644 index 0000000..a0b4a74 --- /dev/null +++ b/playbooks/teardown/docker.yaml @@ -0,0 +1,37 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/ansible/ansible-lint/refs/heads/main/src/ansiblelint/schemas/playbook.json + +- name: Remove nodes from swarm + hosts: docker_workers + tasks: + - name: Leave node from swarm + community.docker.docker_swarm: + state: absent + +- name: Teardown docker swarm + hosts: docker_managers + tasks: + - name: Disable docker swarm mode + community.docker.docker_swarm: + state: absent + force: true + + - name: Delete traefik network + community.docker.docker_network: + name: reverse-proxy + state: absent + + - name: Remove docker context for each Swarm manager machine + ignore_errors: true + local_action: > + ansible.builtin.command docker context rm -f {{ ansible_hostname }} + +- name: Clean docker resources + hosts: docker + tasks: + - name: Prune docker resources + community.docker.docker_prune: + containers: true + images: true + networks: true + builder_cache: true +