diff --git a/hosts/inventory.ini b/hosts/inventory.ini index 43b2f86..5f3bcf1 100644 --- a/hosts/inventory.ini +++ b/hosts/inventory.ini @@ -1,2 +1,5 @@ [homelab] -10.0.10.50 +10.0.10.50 docker_swarm_manager=true + +[docker] +10.0.10.50 docker_swarm_manager=true diff --git a/playbooks/setup/alpine.yaml b/playbooks/setup/alpine.yaml index d6f3d27..6ee0539 100644 --- a/playbooks/setup/alpine.yaml +++ b/playbooks/setup/alpine.yaml @@ -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,6 +85,18 @@ 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 @@ -94,8 +109,15 @@ state: started enabled: true - handlers: - - name: Restart sshd - ansible.builtin.service: - name: sshd - state: restarted + - name: Enable Docker Swarm mode + community.docker.docker_swarm: + state: present + advertise_addr: "{{ ansible_default_ipv4.address }}" + when: docker_swarm_manager | bool + + - 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