Mark Goddard af3b719b73 Move group_vars to an inventory directory
The group variables originally in ansible/group_vars/ were playbook
group variables, due to being adjacent to the playbooks. Typically they
provided default values for global variables in the all group, as well
as some more specific groups. This has worked fairly well, but results
in (at least) a couple of problems.

1. The default variable precedence rules mean that these playbook group
   variables have a higher precedence than inventory group variables
   (for a given group). This can make it challenging to override
   playbook group variables in the inventory in Kayobe configuration.

2. Any playbook run by Kayobe must be in the same directory as the
   playbook group variables in order to use them. Given that they
   include variables required for connectivity such as ansible_host and
   ansible_user, this is quite critical. For Kayobe custom playbooks, we
   work around this by symlinking to the group_vars directory from the
   directory containing the custom playbook. This is not an elegant
   workaround, and has assumptions about the relative paths of the
   Kayobe configuration and virtual environment in which Kayobe is
   installed.

Story: 2010280
Task: 46233

Change-Id: Ifea5c7e73f6f410f96a7398bfd349d1f631d9fc0
2022-09-08 10:11:23 +01:00

162 lines
6.1 KiB
Plaintext

---
###############################################################################
# Seed hypervisor node configuration.
# User with which to access the seed hypervisor via SSH during bootstrap, in
# order to setup the Kayobe user account. Default is {{ os_distribution }}.
seed_hypervisor_bootstrap_user: "{{ os_distribution }}"
###############################################################################
# Seed hypervisor network interface configuration.
# List of networks to which seed hypervisor nodes are attached.
seed_hypervisor_network_interfaces: >
{{ (seed_hypervisor_default_network_interfaces +
seed_hypervisor_extra_network_interfaces) | select | unique | list }}
# List of default networks to which seed hypervisor nodes are attached.
seed_hypervisor_default_network_interfaces: "{{ seed_default_network_interfaces }}"
# List of extra networks to which seed hypervisor nodes are attached.
seed_hypervisor_extra_network_interfaces: "{{ seed_extra_network_interfaces }}"
# Whether to enable SNAT on seed hypervisor node. Default is false.
seed_hypervisor_enable_snat: false
###############################################################################
# Seed hypervisor node software RAID configuration.
# List of software RAID arrays. See mrlesmithjr.mdadm role for format.
seed_hypervisor_mdadm_arrays: []
###############################################################################
# Seed hypervisor node encryption configuration.
# List of block devices to encrypt. See stackhpc.luks role for format.
seed_hypervisor_luks_devices: []
###############################################################################
# Seed hypervisor node LVM configuration.
# List of seed hypervisor volume groups. See mrlesmithjr.manage-lvm role for
# format. Set to "{{ seed_hypervisor_lvm_groups_with_data }}" to create a
# volume group for libvirt storage.
seed_hypervisor_lvm_groups: []
# Suggested list of seed hypervisor volume groups for libvirt. Not used by default.
seed_hypervisor_lvm_groups_with_data:
- "{{ seed_hypervisor_lvm_group_data }}"
# Seed LVM volume group for data. See mrlesmithjr.manage-lvm role for format.
seed_hypervisor_lvm_group_data:
vgname: data
disks: "{{ seed_hypervisor_lvm_group_data_disks }}"
create: True
lvnames: "{{ seed_hypervisor_lvm_group_data_lvs }}"
# List of disks for use by seed hypervisor LVM data volume group. Default to an
# invalid value to require configuration.
seed_hypervisor_lvm_group_data_disks:
- changeme
# List of LVM logical volumes for the data volume group.
seed_hypervisor_lvm_group_data_lvs:
- "{{ seed_hypervisor_lvm_group_data_lv_libvirt_storage }}"
# Libvirt storage LVM backing volume.
seed_hypervisor_lvm_group_data_lv_libvirt_storage:
lvname: libvirt-storage
size: "{{ seed_hypervisor_lvm_group_data_lv_libvirt_storage_size }}"
create: True
filesystem: "{{ seed_hypervisor_lvm_group_data_lv_libvirt_storage_fs }}"
mount: True
mntp: "{{ seed_hypervisor_libvirt_pool_path }}"
# Size of libvirt storage LVM backing volume.
seed_hypervisor_lvm_group_data_lv_libvirt_storage_size: 100%VG
# Filesystem for libvirt storage LVM backing volume. ext4 allows for shrinking.
seed_hypervisor_lvm_group_data_lv_libvirt_storage_fs: ext4
###############################################################################
# Seed hypervisor libvirt storage pool configuration.
# List of libvirt storage pools for the seed hypervisor.
seed_hypervisor_libvirt_pools:
- "{{ seed_hypervisor_libvirt_pool }}"
# Libvirt storage pool for the seed VM.
seed_hypervisor_libvirt_pool:
name: "{{ seed_hypervisor_libvirt_pool_name }}"
type: dir
path: "{{ seed_hypervisor_libvirt_pool_path }}"
mode: "{{ seed_hypervisor_libvirt_pool_mode }}"
owner: "{{ seed_hypervisor_libvirt_pool_owner }}"
group: "{{ seed_hypervisor_libvirt_pool_group }}"
# Name of the libvirt storage pool for the seed VM.
seed_hypervisor_libvirt_pool_name: "default"
# Directory path of the libvirt storage pool for the seed VM.
seed_hypervisor_libvirt_pool_path: "/var/lib/libvirt/images"
# Directory mode of the libvirt storage pool for the seed VM.
seed_hypervisor_libvirt_pool_mode: 711
# Directory owner of the libvirt storage pool for the seed VM.
seed_hypervisor_libvirt_pool_owner: "root"
# Directory group of the libvirt storage pool for the seed VM.
seed_hypervisor_libvirt_pool_group: "root"
###############################################################################
# Seed hypervisor libvirt network configuration.
# List of libvirt networks for the seed hypervisor.
seed_hypervisor_libvirt_networks: >
{{ network_interfaces |
net_select_bridges |
map('net_libvirt_network') |
list }}
###############################################################################
# Seed hypervisor sysctl configuration.
# Dict of sysctl parameters to set.
seed_hypervisor_sysctl_parameters: {}
###############################################################################
# Seed hypervisor tuned configuration.
# Builtin tuned profile to use. Format is same as that used by giovtorres.tuned
# role. Default is virtual-host.
seed_hypervisor_tuned_active_builtin_profile: "virtual-host"
###############################################################################
# Seed hypervisor user configuration.
# List of users to create. This should be in a format accepted by the
# singleplatform-eng.users role.
seed_hypervisor_users: "{{ users_default }}"
###############################################################################
# Seed hypervisor node firewalld configuration.
# Whether to install and enable firewalld.
seed_hypervisor_firewalld_enabled: false
# A list of zones to create. Each item is a dict containing a 'zone' item.
seed_hypervisor_firewalld_zones: []
# A firewalld zone to set as the default. Default is unset, in which case the
# default zone will not be changed.
seed_hypervisor_firewalld_default_zone:
# A list of firewall rules to apply. Each item is a dict containing arguments
# to pass to the firewalld module. Arguments are omitted if not provided, with
# the following exceptions:
# - offline: true
# - permanent: true
# - state: enabled
seed_hypervisor_firewalld_rules: []