From 7130569e6f32496059cb075ddb44281b567f37f5 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Tue, 12 Aug 2025 17:46:38 +0200 Subject: [PATCH] Refactor playbooks and roles --- ansible/controller.yml | 2 - ansible/{ => playbooks}/bootstrap.yml | 0 ansible/playbooks/controller.yml | 68 +++++++++++++++++++ ansible/{ => playbooks}/nodes.yml | 0 .../roles/common/defaults/main.yml | 0 .../roles/common/tasks/connectivity.yml | 0 .../roles/common/tasks/main.yml | 0 .../roles/docker-swarm/tasks/main.yaml | 0 .../roles/docker-swarm}/tasks/swarm.yml | 0 .../{ => playbooks}/roles/docker/README.md | 0 .../roles/docker/defaults/main.yml | 0 .../roles/docker/handlers/main.yml | 0 .../roles/docker/meta/main.yml | 0 .../roles/docker/tasks/docker_user.yml | 0 .../roles/docker/tasks/install.yml | 0 .../roles/docker/tasks/main.yml | 0 .../roles/docker/tests/inventory | 0 .../roles/docker/tests/test.yml | 0 .../roles/docker/vars/main.yml | 0 .../roles/nextcloud_aio/tasks/main.yaml | 0 .../tasks/nextcloud_docker_aio.yaml | 6 ++ ansible/{ => playbooks}/swarms.yml | 4 +- ansible/readme.md | 26 +++++-- ansible/site.yaml | 1 + 24 files changed, 99 insertions(+), 8 deletions(-) delete mode 100644 ansible/controller.yml rename ansible/{ => playbooks}/bootstrap.yml (100%) create mode 100644 ansible/playbooks/controller.yml rename ansible/{ => playbooks}/nodes.yml (100%) rename ansible/{ => playbooks}/roles/common/defaults/main.yml (100%) rename ansible/{ => playbooks}/roles/common/tasks/connectivity.yml (100%) rename ansible/{ => playbooks}/roles/common/tasks/main.yml (100%) create mode 100644 ansible/playbooks/roles/docker-swarm/tasks/main.yaml rename ansible/{roles/docker => playbooks/roles/docker-swarm}/tasks/swarm.yml (100%) rename ansible/{ => playbooks}/roles/docker/README.md (100%) rename ansible/{ => playbooks}/roles/docker/defaults/main.yml (100%) rename ansible/{ => playbooks}/roles/docker/handlers/main.yml (100%) rename ansible/{ => playbooks}/roles/docker/meta/main.yml (100%) rename ansible/{ => playbooks}/roles/docker/tasks/docker_user.yml (100%) rename ansible/{ => playbooks}/roles/docker/tasks/install.yml (100%) rename ansible/{ => playbooks}/roles/docker/tasks/main.yml (100%) rename ansible/{ => playbooks}/roles/docker/tests/inventory (100%) rename ansible/{ => playbooks}/roles/docker/tests/test.yml (100%) rename ansible/{ => playbooks}/roles/docker/vars/main.yml (100%) create mode 100644 ansible/playbooks/roles/nextcloud_aio/tasks/main.yaml create mode 100644 ansible/playbooks/roles/nextcloud_aio/tasks/nextcloud_docker_aio.yaml rename ansible/{ => playbooks}/swarms.yml (97%) diff --git a/ansible/controller.yml b/ansible/controller.yml deleted file mode 100644 index 168992f..0000000 --- a/ansible/controller.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -#- hosts: \ No newline at end of file diff --git a/ansible/bootstrap.yml b/ansible/playbooks/bootstrap.yml similarity index 100% rename from ansible/bootstrap.yml rename to ansible/playbooks/bootstrap.yml diff --git a/ansible/playbooks/controller.yml b/ansible/playbooks/controller.yml new file mode 100644 index 0000000..1adbedb --- /dev/null +++ b/ansible/playbooks/controller.yml @@ -0,0 +1,68 @@ +--- +# play 1 - local +# check config info from inventory + + + +# play 2 +# gather status + +# play 3 +# bootstrap + +# play 4 +# join + +- name: Tests + hosts: swarm + connection: local + gather_facts: no + + vars: + swarm_list: {} + + tasks: + - debug: var=hostvars + + - name: Gather Swarm info + set_fact: + swarm_list: "{{swarm_list + hostvars[hostname]['swarm_name']}}" + + - debug: var=swarm_list + + + # # show all the hosts in the inventory + # - debug: + # msg: "{{ item }}" + # loop: "{{ groups['all'] }}" + + # - name: printsomthieng + # debug: + # msg: "{{ item }}" + # with_items: "{{ play_hosts }}" + # #run_once: true + + + + # debug: + # msg: + # # - "{{ item }}" + # - "{{hostvars[item]['swarm_master']}}" + # #loop: "{{ hosts.items() | list }}" + + + + + + + + + # - name: Create swarm___ groups + # add_host: + # hostname: "{{ item }}" + # groups: "swarm_{{item}}manager_operational" + # with_items: "{{ play_hosts }}" + # run_once: true + + # - name: Display + # command: echo "swarm_{{item}}manager_operational" \ No newline at end of file diff --git a/ansible/nodes.yml b/ansible/playbooks/nodes.yml similarity index 100% rename from ansible/nodes.yml rename to ansible/playbooks/nodes.yml diff --git a/ansible/roles/common/defaults/main.yml b/ansible/playbooks/roles/common/defaults/main.yml similarity index 100% rename from ansible/roles/common/defaults/main.yml rename to ansible/playbooks/roles/common/defaults/main.yml diff --git a/ansible/roles/common/tasks/connectivity.yml b/ansible/playbooks/roles/common/tasks/connectivity.yml similarity index 100% rename from ansible/roles/common/tasks/connectivity.yml rename to ansible/playbooks/roles/common/tasks/connectivity.yml diff --git a/ansible/roles/common/tasks/main.yml b/ansible/playbooks/roles/common/tasks/main.yml similarity index 100% rename from ansible/roles/common/tasks/main.yml rename to ansible/playbooks/roles/common/tasks/main.yml diff --git a/ansible/playbooks/roles/docker-swarm/tasks/main.yaml b/ansible/playbooks/roles/docker-swarm/tasks/main.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/docker/tasks/swarm.yml b/ansible/playbooks/roles/docker-swarm/tasks/swarm.yml similarity index 100% rename from ansible/roles/docker/tasks/swarm.yml rename to ansible/playbooks/roles/docker-swarm/tasks/swarm.yml diff --git a/ansible/roles/docker/README.md b/ansible/playbooks/roles/docker/README.md similarity index 100% rename from ansible/roles/docker/README.md rename to ansible/playbooks/roles/docker/README.md diff --git a/ansible/roles/docker/defaults/main.yml b/ansible/playbooks/roles/docker/defaults/main.yml similarity index 100% rename from ansible/roles/docker/defaults/main.yml rename to ansible/playbooks/roles/docker/defaults/main.yml diff --git a/ansible/roles/docker/handlers/main.yml b/ansible/playbooks/roles/docker/handlers/main.yml similarity index 100% rename from ansible/roles/docker/handlers/main.yml rename to ansible/playbooks/roles/docker/handlers/main.yml diff --git a/ansible/roles/docker/meta/main.yml b/ansible/playbooks/roles/docker/meta/main.yml similarity index 100% rename from ansible/roles/docker/meta/main.yml rename to ansible/playbooks/roles/docker/meta/main.yml diff --git a/ansible/roles/docker/tasks/docker_user.yml b/ansible/playbooks/roles/docker/tasks/docker_user.yml similarity index 100% rename from ansible/roles/docker/tasks/docker_user.yml rename to ansible/playbooks/roles/docker/tasks/docker_user.yml diff --git a/ansible/roles/docker/tasks/install.yml b/ansible/playbooks/roles/docker/tasks/install.yml similarity index 100% rename from ansible/roles/docker/tasks/install.yml rename to ansible/playbooks/roles/docker/tasks/install.yml diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/playbooks/roles/docker/tasks/main.yml similarity index 100% rename from ansible/roles/docker/tasks/main.yml rename to ansible/playbooks/roles/docker/tasks/main.yml diff --git a/ansible/roles/docker/tests/inventory b/ansible/playbooks/roles/docker/tests/inventory similarity index 100% rename from ansible/roles/docker/tests/inventory rename to ansible/playbooks/roles/docker/tests/inventory diff --git a/ansible/roles/docker/tests/test.yml b/ansible/playbooks/roles/docker/tests/test.yml similarity index 100% rename from ansible/roles/docker/tests/test.yml rename to ansible/playbooks/roles/docker/tests/test.yml diff --git a/ansible/roles/docker/vars/main.yml b/ansible/playbooks/roles/docker/vars/main.yml similarity index 100% rename from ansible/roles/docker/vars/main.yml rename to ansible/playbooks/roles/docker/vars/main.yml diff --git a/ansible/playbooks/roles/nextcloud_aio/tasks/main.yaml b/ansible/playbooks/roles/nextcloud_aio/tasks/main.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/playbooks/roles/nextcloud_aio/tasks/nextcloud_docker_aio.yaml b/ansible/playbooks/roles/nextcloud_aio/tasks/nextcloud_docker_aio.yaml new file mode 100644 index 0000000..a9ca522 --- /dev/null +++ b/ansible/playbooks/roles/nextcloud_aio/tasks/nextcloud_docker_aio.yaml @@ -0,0 +1,6 @@ +--- +# NB inherit docker +- name: Create volumes + ## TODO + +- name: launch Nextcloud aio docker image diff --git a/ansible/swarms.yml b/ansible/playbooks/swarms.yml similarity index 97% rename from ansible/swarms.yml rename to ansible/playbooks/swarms.yml index d5f08e5..2ed0068 100644 --- a/ansible/swarms.yml +++ b/ansible/playbooks/swarms.yml @@ -1,5 +1,5 @@ --- -- name: "Configure swarms" +- name: "Configure swarm" hosts: swarm1 roles: - common @@ -10,7 +10,7 @@ hostname: "{{ item }}" groups: manager_group with_items: "{{play_hosts}}" - when: hostvars[item]['swarm_master'] + when: hostvars[item]['swarm_master'] is defined and hostvars[item]['swarm_master'] - name: "Prepare worker group" add_host: diff --git a/ansible/readme.md b/ansible/readme.md index f553b28..626776d 100644 --- a/ansible/readme.md +++ b/ansible/readme.md @@ -1,15 +1,33 @@ # Ansible Playbooks -## Playbooks -##### Bootstrap -Creates user ansible with necessary privileges. Needs become password +## Usage + +The inventory defines labs, nodes and their group based on function. + +Playbooks run Roles against node groups. + +Roles define set of Tasks. + + + +## Playbooks + +**Site** playbook launches them all. +**Bootstrap** is to be run first on new installations. + +### Site +This playbook recalls all the following playbooks in the stated order. + -'ansible-playbook -i inventories bootstrap.yml -l nextrup_copy_test -u fabio -K --ask-vault-password' ##### Nodes Basic checks connectivity for **all** +##### Swarms + +##### NextCloud +Installs Nextcloud AIO using SSE Lab / dockerized / nextcloud-aio ## Inventories diff --git a/ansible/site.yaml b/ansible/site.yaml index 070496a..d0c5b05 100644 --- a/ansible/site.yaml +++ b/ansible/site.yaml @@ -3,3 +3,4 @@ - import_playbook: nodes.yml #- import_playbook: controller.yml - import_playbook: swarms.yml +#- import_playbook: nextcloud.yml \ No newline at end of file