Having tagged plays allows us to easily run a subset of the plays for a
command, and perform targeted operations with less risk of unintended
consequences.
The tags are typically named after the playbook, although some of the
overcloud playbooks have been tagged without an overcloud- prefix.
We use the group_by module to create groups based on host variables.
When the variable is a boolean, we should convert it to a bool using the
bool filter, to ensure that the group name has a consistent format.
This includes:
* Building and registering IPA images
* Registering a provisioning network
* Registering ironic inspector introspection rules
* Creating an inspection store container
The current implementation only works if all compute nodes in the system
have the same interface name for their provisioning network. This change
adds a default value and a map for exceptions
Some Dell switch OSs (including Dell Network OS 9.10(0.1)) do not support
sending interface port description TLVs correctly. Instead of sending the
interface description, they send the interface name (e.g. TenGigabitEthernet
1/1/1). This breaks the discovery process which relies on Ironic node
introspection data containing the node's name in the interface port
description. We work around this here by creating an introspection rule for
each ironic node that matches against the switch system and the relevant
interface name, then sets the node's name appropriately.