---
# deploy.yml
#
# This playbook details how an entire datacenter should be deployed
# 
# Parameters: 
# threads: Number of threads to use; default is 16.
#
- hosts: Nazara
  order: sorted
  serial: "{{ threads | default('16') }}"
  gather_facts: true
  ignore_unreachable: true
  vars_files:
     - "{{ lookup('env', 'ANSIBLE_VAULT_FILE') }}"
  vars:
     - ansible_password: "{{ passwords[inventory_hostname] }}"
     - ansible_become_password: "{{ passwords[inventory_hostname] }}"
  roles:
     - Nazara

- hosts: managed
  order: sorted
  serial: "{{ threads | default('16') }}"
  gather_facts: true
  ignore_unreachable: true
  vars_files:
     - "{{ lookup('env', 'ANSIBLE_VAULT_FILE') }}"
  vars: # This is the only segment that should need these variables, as the basics role should take care of sudo and the SSH key.
     - ansible_password: "{{ passwords[inventory_hostname] }}"
     - ansible_become_password: "{{ passwords[inventory_hostname] }}"
  roles:
      - ShadowArch
      - SSH
      - Sharingan

- hosts: Core
  order: sorted
  serial: "{{ threads | default('16') }}"
  gather_facts: true
  ignore_unreachable: true
  vars_files:
     - "{{ lookup('env', 'ANSIBLE_VAULT_FILE') }}"
  roles: 
      - hardware
      - SSL

- hosts: geth_hubs
  order: sorted
  serial: "{{ threads | default('16') }}"
  gather_facts: true
  ignore_unreachable: true
  vars_files:
     - "{{ lookup('env', 'ANSIBLE_VAULT_FILE') }}"
  roles: 
      - Geth-Hub

- hosts: Node0
  order: sorted
  serial: "{{ threads | default('16') }}"
  gather_facts: true
  ignore_unreachable: true
  vars_files:
     - "{{ lookup('env', 'ANSIBLE_VAULT_FILE') }}"
  roles: 
      - hardware
      - Node

