Skip to content
Snippets Groups Projects
Commit 27db155c authored by Mark Goddard's avatar Mark Goddard
Browse files

Add support for monitoring nodes

Currently these nodes are not deployed using kolla-ansible but use the
host provisioning and host OS configuration pieces of kayobe. The
monasca-deploy project is used to deploy the monitoring services.
parent dc7c2d9c
No related branches found
No related tags found
No related merge requests found
Showing
with 171 additions and 23 deletions
---
- name: Ensure development tools are installed
hosts: seed:controllers
hosts: seed:overcloud
roles:
- role: dev-tools
......@@ -3,6 +3,6 @@
# servers but gets in the way after this as it tries to enable all network
# interfaces. In some cases this can lead to timeouts.
- name: Ensure Glean is disabled and its artifacts are removed
hosts: seed:controllers
hosts: seed:overcloud
roles:
- role: disable-glean
---
- name: Disable SELinux and reboot if required
hosts: controllers:seed
hosts: seed:overcloud
roles:
- role: disable-selinux
disable_selinux_reboot_timeout: "{{ 600 if ansible_virtualization_role == 'host' else 300 }}"
---
- name: Ensure that controller BIOS are configured
hosts: controllers
- name: Ensure that overcloud nodes' BIOS are configured
hosts: overcloud
gather_facts: no
vars:
bios_config:
......
---
- name: Ensure that controller boot order is configured
hosts: controllers
- name: Ensure that overcloud nodes' boot order is configured
hosts: overcloud
gather_facts: no
vars:
ansible_host: "{{ ipmi_address }}"
......
---
- name: Ensure that controller BIOS are configured
hosts: controllers
- name: Gather and display BIOS and RAID facts from iDRACs
hosts: overcloud
gather_facts: no
roles:
# The role simply pulls in the drac_facts module.
......
......@@ -6,6 +6,21 @@
# to setup the Kayobe user account.
controller_bootstrap_user: "{{ lookup('env', 'USER') }}"
###############################################################################
# Controller network interface configuration.
# List of default networks to which controller nodes are attached.
controller_default_network_interfaces: >
{{ [provision_oc_net_name,
provision_wl_net_name,
internal_net_name,
external_net_name,
storage_net_name,
storage_mgmt_net_name] | unique | list }}
# List of extra networks to which controller nodes are attached.
controller_extra_network_interfaces: []
###############################################################################
# Controller node BIOS configuration.
......
---
###############################################################################
# Monitoring node configuration.
# User with which to access the monitoring nodes via SSH during bootstrap, in
# order to setup the Kayobe user account.
monitoring_bootstrap_user: "{{ controller_bootstrap_user }}"
###############################################################################
# Monitoring node network interface configuration.
# List of default networks to which monitoring nodes are attached.
monitoring_default_network_interfaces: >
{{ [provision_oc_net_name,
internal_net_name,
external_net_name] | unique | list }}
# List of extra networks to which monitoring nodes are attached.
monitoring_extra_network_interfaces: []
###############################################################################
# Monitoring node BIOS configuration.
# Dict of monitoring node BIOS options. Format is same as that used by
# stackhpc.drac role.
monitoring_bios_config: "{{ monitoring_bios_config_default | combine(monitoring_bios_config_extra) }}"
# Dict of default monitoring node BIOS options. Format is same as that used by
# stackhpc.drac role.
monitoring_bios_config_default: "{{ controller_bios_config_default }}"
# Dict of additional monitoring node BIOS options. Format is same as that used
# by stackhpc.drac role.
monitoring_bios_config_extra: "{{ controller_bios_config_extra }}"
###############################################################################
# Monitoring node RAID configuration.
# List of monitoring node RAID volumes. Format is same as that used by
# stackhpc.drac role.
monitoring_raid_config: "{{ monitoring_raid_config_default + monitoring_raid_config_extra }}"
# List of default monitoring node RAID volumes. Format is same as that used by
# stackhpc.drac role.
monitoring_raid_config_default: "{{ controller_raid_config_default }}"
# List of additional monitoring node RAID volumes. Format is same as that used
# by stackhpc.drac role.
monitoring_raid_config_extra: "{{ controller_raid_config_extra }}"
###############################################################################
# Monitoring node LVM configuration.
# List of monitoring node volume groups. See mrlesmithjr.manage-lvm role for
# format.
monitoring_lvm_groups: "{{ monitoring_lvm_groups_default + monitoring_lvm_groups_extra }}"
# Default list of monitoring node volume groups. See mrlesmithjr.manage-lvm
# role for format.
monitoring_lvm_groups_default: "{{ controller_lvm_groups_default }}"
# Additional list of monitoring node volume groups. See mrlesmithjr.manage-lvm
# role for format.
monitoring_lvm_groups_extra: "{{ controller_lvm_groups_extra }}"
---
###############################################################################
# Overcloud configuration.
# Default Ansible group for overcloud hosts if not present in
# overcloud_group_hosts_map.
overcloud_group_default: controllers
# List of names of Ansible groups for overcloud hosts.
overcloud_groups:
- controllers
- monitoring
# Dict mapping overcloud Ansible group names to lists of hosts in the group.
# As a special case, the group 'ignore' can be used to specify hosts that
# should not be added to the inventory.
overcloud_group_hosts_map: {}
---
###############################################################################
# Controller node BIOS configuration.
# Dict of monitoring node BIOS options. Format is same as that used by
# stackhpc.drac role.
bios_config: "{{ controller_bios_config }}"
......@@ -6,15 +6,3 @@
network_interfaces: >
{{ (controller_default_network_interfaces +
controller_extra_network_interfaces) | unique | list }}
# List of default networks to which controller nodes are attached.
controller_default_network_interfaces: >
{{ [provision_oc_net_name,
provision_wl_net_name,
internal_net_name,
external_net_name,
storage_net_name,
storage_mgmt_net_name] | unique | list }}
# List of extra networks to which controller nodes are attached.
controller_extra_network_interfaces: []
---
###############################################################################
# Controller node RAID configuration.
# List of controller node RAID volumes. Format is same as that used by
# stackhpc.drac role.
raid_config: "{{ controller_raid_config }}"
---
# User with which to access the monitoring nodes via SSH.
ansible_user: "{{ kayobe_ansible_user }}"
# User with which to access the monitoring nodes before the kayobe_ansible_user
# account has been created.
bootstrap_user: "{{ monitoring_bootstrap_user }}"
---
###############################################################################
# Monitoring node BIOS configuration.
# Dict of monitoring node BIOS options. Format is same as that used by
# stackhpc.drac role.
bios_config: >
{{ controller_bios_config
if inventory_hostname in groups['controllers'] else
monitoring_bios_config }}
---
###############################################################################
# Monitoring node LVM configuration.
# List of LVM volume groups.
lvm_groups: >
{{ controller_lvm_groups
if inventory_hostname in groups['controllers'] else
monitoring_lvm_groups }}
---
###############################################################################
# Network interface attachments.
# List of networks to which these nodes are attached.
network_interfaces: >
{{ (controller_default_network_interfaces +
controller_extra_network_interfaces) | unique | list
if inventory_hostname in groups['controllers'] else
(monitoring_default_network_interfaces +
monitoring_extra_network_interfaces) | unique | list }}
---
###############################################################################
# Monitoring node RAID configuration.
# List of monitoring node RAID volumes. Format is same as that used by
# stackhpc.drac role.
raid_config: >
{{ controller_raid_config
if inventory_hostname in groups['controllers'] else
monitoring_raid_config }}
---
# Host/IP with which to access the controllers via SSH.
# Host/IP with which to access the overcloud nodes via SSH.
ansible_host: "{{ provision_oc_net_name | net_ip }}"
---
- name: Ensure IP addresses are allocated
hosts: seed:controllers
hosts: seed:overcloud
gather_facts: no
pre_tasks:
- name: Initialise the IP allocations fact
......
......@@ -2,6 +2,6 @@
# Enable IP routing in the kernel.
- name: Ensure IP routing is enabled
hosts: seed:controllers
hosts: seed:overcloud
roles:
- role: ip-routing
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment