![Nolan Brubaker](/assets/img/avatar_default.png)
This patch tries to document and test the following invariant that should apply for all groups in the environment: A group should have either child groups, or hosts, not both. Tests are introduced to confirm and enforce this behavior, based on the reported failing configuration. A new function, _check_group_branches, is added which will detect a failing scenario before code that uses it is executed. If a conflict is found, a GroupConflict exception will be raised indicating why. The _check_group_branches function was placed before the physical skel loading because the problem occurs during that phase; placing this in the _check_config_settings function would be checking after the error's already been raised. A note was also added to _parse_belongs_to to communicate it's implicit dependence on state as checked by _check_group_branches. Parent-Id: I1e746bfbda430076459d757039bc21f9df6a4a8a Change-Id: I7830915fbdf9ed814846b69b1293729fb59ece79 Closes-Bug: #1646136
69 lines
1.9 KiB
ReStructuredText
69 lines
1.9 KiB
ReStructuredText
=========================
|
|
Configuring the inventory
|
|
=========================
|
|
|
|
Changing the base environment directory
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The ``--environment/-e`` argument will take the path to a directory containing
|
|
an ``env.d`` directory. This defaults to ``playbooks/inventory/`` in the
|
|
OpenStack-Ansible codebase.
|
|
|
|
Contents of this directory are populated into the environment *before* the
|
|
``env.d`` found in the directory specified by ``--config``.
|
|
|
|
|
|
Checking inventory configuration for errors
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Using the ``--check`` flag when running ``dynamic_inventory.py`` will run the
|
|
inventory build process and look for known errors, but not write any files to
|
|
disk.
|
|
|
|
If any groups defined in the ``openstack_user_config.yml`` or ``conf.d`` files
|
|
are not found in the environment, a warning will be raised.
|
|
|
|
This check does not do YAML syntax validation, though it will fail if there
|
|
are unparseable errors.
|
|
|
|
Writing debug logs
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
The ``--debug/-d`` parameter allows writing of a detailed log file for
|
|
debugging the inventory script's behavior. The output is written to
|
|
``inventory.log`` in the current working directory.
|
|
|
|
The ``inventory.log`` file is appended to, not overwritten.
|
|
|
|
Like ``--check``, this flag is not invoked when running from ansible.
|
|
|
|
Configuration constraints
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Group memberships
|
|
-----------------
|
|
|
|
When adding groups, keep the following in mind:
|
|
|
|
* A group can contain hosts
|
|
* A group can contain child groups
|
|
|
|
However, groups cannot contain child groups and hosts.
|
|
|
|
|
|
The lxc_hosts Group
|
|
-------------------
|
|
|
|
When the dynamic inventory script creates a container name, the host on
|
|
which the container resides is added to the ``lxc_hosts`` inventory group.
|
|
|
|
Using this name for a group in the configuration will result in a runtime
|
|
error.
|
|
|
|
Dynamic Inventory API documentation
|
|
-----------------------------------
|
|
|
|
.. automodule:: dynamic_inventory
|
|
:members:
|
|
|