Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions ansible/configs/base-infra/default_vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,48 @@ ansible_devops_user_ssh_config: ./files/ssh_config.j2

software_to_deploy: none

# Workloads should be specified in the appropriate var targeting the stage.
# The format for each is a list with role name, hosts, and optional vars
#
# Workload roles use the ACTION var do determine whether they should
# perform provision, start, stop, or destroy.
#
# If vars are included then those will be set with set_fact before the role
# is called. This allows the same role to be called repeatedly on the same
# or different hosts with different variables.
#
# Example:
#
# post_infra_workloads:
# # Provsision a VM, add host to inventory
# - name: mitzi_vm
# hosts: localhost
#
# # Configure software on bastion VM
# software_workloads:
# - name: mitzi_software
# hosts: bastion
#
# # Start the VM, then check software state
# start_workloads:
# - name: mitzi_vm
# hosts: localhost
# - name: mitzi_software
# hosts: bastion
#
# # Shutdown the VM
# stop_workloads:
# - name: mitzi_vm
# hosts: localhost
# - name: mitzi_software
# hosts: bastion
#
pre_infra_workloads: []
post_infra_workloads: []
pre_software_workloads: []
software_workloads: []
post_software_workloads: []

# Setup inventory group for AAP2 Automation controller bastion
# load-balancers, app_servers, database_servers may be discarded
# in future iterations (update default_vars_<CLOUD_PROVIDER> as well
Expand Down
4 changes: 4 additions & 0 deletions ansible/configs/base-infra/noop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
# Stand-in to implement no-op for workloads import_playbook compatibility
- name: No-op
hosts: localhost
19 changes: 19 additions & 0 deletions ansible/configs/base-infra/post_infra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,22 @@
ansible.builtin.service:
name: sshd
state: restarted

- name: Run host_workloads for post_infra_workloads
any_errors_fatal: true
hosts: all:localhost
gather_facts: false
tags:
- step002
- post_infrastructure
tasks:
- name: Include host_workloads for post_infra
when:
- post_infra_workloads is iterable
- post_infra_workloads is not mapping
- post_infra_workloads is not string
vars:
agnosticd_stage: post_infra
host_workloads: "{{ post_infra_workloads }}"
ansible.builtin.include_role:
name: host_workloads
22 changes: 21 additions & 1 deletion ansible/configs/base-infra/post_software.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,31 @@
# Post-Software Workloads as role
# ----------------------------------------------------------------------
- name: Import Post-software workloads
import_playbook: workloads.yml
import_playbook: >-
{{ 'workloads.yml' if post_software_workloads is mapping else 'noop.yml' }}
vars:
_workload_title_: "Post Software"
_workloads_: "{{ post_software_workloads | default([]) }}"

- name: Run host_workloads for post_software_workloads
any_errors_fatal: true
hosts: all:localhost
gather_facts: false
tags:
- step005
- post_software
tasks:
- name: Include host_workloads for post_software
when:
- post_software_workloads is iterable
- post_software_workloads is not mapping
- post_software_workloads is not string
vars:
agnosticd_stage: post_software
host_workloads: "{{ post_software_workloads }}"
ansible.builtin.include_role:
name: host_workloads

- name: Deploy user setup
hosts: localhost
gather_facts: false
Expand Down
23 changes: 21 additions & 2 deletions ansible/configs/base-infra/pre_infra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,29 @@
# ----------------------------------------------------------------------
# Post-Software Workloads as role
# ----------------------------------------------------------------------
- name: Import Post-software workloads
import_playbook: workloads.yml
- name: Import pre_infra workloads
import_playbook: >-
{{ 'workloads.yml' if pre_infra_workloads is mapping else 'noop.yml' }}
vars:
_workload_title_: "Pre Infra"
_workloads_: "{{ pre_infra_workloads | default([]) }}"

- name: Run host_workloads for pre_infra_workloads
any_errors_fatal: true
hosts: localhost
gather_facts: false
tags:
- step005
- pre_infrastructure
tasks:
- name: Include host_workloads for pre_infra
when:
- pre_infra_workloads is iterable
- pre_infra_workloads is not mapping
- pre_infra_workloads is not string
vars:
agnosticd_stage: pre_infra
host_workloads: "{{ pre_infra_workloads }}"
ansible.builtin.include_role:
name: host_workloads
...
22 changes: 21 additions & 1 deletion ansible/configs/base-infra/pre_software.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,31 @@
# Pre-Software Workloads as role
# ----------------------------------------------------------------------
- name: Import Pre-software workloads
import_playbook: workloads.yml
import_playbook: >-
{{ 'workloads.yml' if pre_software_workloads is mapping else 'noop.yml' }}
vars:
_workload_title_: "Pre Software"
_workloads_: "{{ pre_software_workloads | default([]) }}"

- name: Run host_workloads for pre_software_workloads
any_errors_fatal: true
hosts: all:localhost
gather_facts: false
tags:
- step004
- pre_software
tasks:
- name: Include host_workloads for pre_software
when:
- pre_software_workloads is iterable
- pre_software_workloads is not mapping
- pre_software_workloads is not string
vars:
agnosticd_stage: pre_software
host_workloads: "{{ pre_software_workloads }}"
ansible.builtin.include_role:
name: host_workloads

- name: Create local ssh keys
hosts: localhost
gather_facts: false
Expand Down
24 changes: 22 additions & 2 deletions ansible/configs/base-infra/software.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,30 @@
# Software Workloads as role
# ----------------------------------------------------------------------
- name: Import Software workloads
import_playbook: workloads.yml
import_playbook: >-
{{ 'workloads.yml' if software_workloads is mapping else 'noop.yml' }}
vars:
_workload_title_: "Software"
_workloads_: "{{ software_workloads | default([]) }}"
_workloads_: "{{ software_workloads }}"

- name: Run host_workloads for software_workloads
any_errors_fatal: true
hosts: all:localhost
gather_facts: false
tags:
- step005
- software
tasks:
- name: Include host_workloads for software
when:
- software_workloads is iterable
- software_workloads is not mapping
- software_workloads is not string
vars:
agnosticd_stage: software
host_workloads: "{{ software_workloads }}"
ansible.builtin.include_role:
name: host_workloads

- name: Software flight-check
hosts: localhost
Expand Down
Loading