feat: complete base docker setup

This commit is contained in:
Alexander Navarro 2024-12-04 16:55:52 -03:00
parent 79c8123c6f
commit d240fcc735
2 changed files with 45 additions and 5 deletions

View file

@ -1,2 +1,5 @@
[homelab]
10.0.10.50
[docker]
10.0.10.50 docker_swarm_manager=true

View file

@ -1,3 +1,6 @@
# > /COPILOT_GENERATE I'm writing an ansible playbook to setup a new alpine server, I want you to help me to generate some tasks
- name: Setup an alpine machine
hosts: homelab
user: root
@ -82,11 +85,25 @@
key: "{{ robo.authorized_key }}"
key_options: "command=\"{{ robo.allowed_commands | join('; ') }}\""
handlers:
- name: Restart sshd
ansible.builtin.service:
name: sshd
state: restarted
- name: Setup Docker
hosts: docker
user: root
vars_files:
../../variables/secrets.yaml
tasks:
- name: Install packages
ansible.builtin.package:
state: present
name:
- docker
- py3-pip
- py3-docker-py
- name: Start docker service
ansible.builtin.service:
@ -94,8 +111,28 @@
state: started
enabled: true
handlers:
- name: Restart sshd
ansible.builtin.service:
name: sshd
state: restarted
- name: Setup Docker Swarm
when: docker_swarm_manager | bool
block:
- name: Enable Docker Swarm mode
community.docker.docker_swarm:
state: present
advertise_addr: "{{ ansible_default_ipv4.address }}"
- name: Check if Docker context exists
local_action: ansible.builtin.command docker context inspect {{ ansible_hostname }}
register: context_exists
ignore_errors: true
- name: Create Docker context for each Swarm manager machine
local_action: >
ansible.builtin.command docker context create {{ ansible_hostname }} --docker "host=ssh://{{ ansible_default_ipv4.address }}"
when: context_exists.stderr != ''
- name: Join Docker Swarm as a worker
community.docker.docker_swarm:
state: join
join_token: "{{ hostvars['manager']['docker_swarm_worker_token'] }}"
remote_addrs: ["{{ hostvars['manager']['ansible_default_ipv4']['address'] }}"]
when: not docker_swarm_manager | bool