python-support-infra/playbook.yml

71 lines
1.7 KiB
YAML

####################
# - Setup
####################
- name: "Allocate Hosts w/DNS"
tags:
- "stage_setup"
hosts: "localhost"
vars:
do_project: "{{ project_name }}"
do_project_purpose: "Infrastructure for the Python Support Team."
roles:
- role: "setup/hosts_digitalocean"
vars:
hosts_do: "{{ groups['purpose_storage'] }}"
## SET: nodes_to_ipv4s_public@localhost
## SET: nodes_to_ipv4s_private@localhost
- role: "setup/hosts_digitalocean"
vars:
hosts_do: "{{ groups['purpose_service'] }}"
## SET: nodes_to_ipv4s_public@localhost
## SET: nodes_to_ipv4s_private@localhost
- role: "setup/dns_foundation"
vars:
ipv4_root: "{{ nodes_to_ipv4s_public['raspberry.node'] }}"
####################
# - Setup Hosts
####################
- name: "Configure Hosts"
hosts: "swarm_nodes"
tags:
- "stage_host"
roles:
- role: "host/system_tools"
- role: "host/network_wg0"
vars:
hosts_wg0: "{{ groups['swarm_nodes'] }}"
- role: "host/docker"
- name: "Configure Docker Swarm Leader"
hosts: "swarm_leader"
tags:
- "stage_host"
roles:
- role: "host/docker_swarm_leader"
## SET: swarm_manager_token@swarm_leader
## SET: swarm_worker_token@swarm_leader
- name: "Configure Docker Swarm Workers"
hosts: "swarm_workers"
tags:
- "stage_host"
roles:
- role: "host/docker_swarm_worker"
vars:
host_swarm_leader: "{{ groups['swarm_leader'][0] }}"
####################
# - Deploy Stacks
####################
- import_playbook: "./stacks/mesh/playbook.yml"
- import_playbook: "./stacks/site-support/playbook.yml"
- import_playbook: "./stacks/cleanup/playbook.yml"