openstack.cloud.openstack inventory – OpenStack inventory source
Note
This inventory plugin is part of the openstack.cloud collection (version 2.3.3).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install openstack.cloud
.
You need further requirements to be able to use this inventory plugin,
see Requirements for details.
To use it in a playbook, specify: openstack.cloud.openstack
.
Synopsis
Gather servers from OpenStack clouds and add them as Ansible hosts to your inventory.
Use YAML configuration file
openstack.{yaml,yml}
to configure this inventory plugin.Consumes cloud credentials from standard YAML configuration files
clouds{,-public}.yaml
.
Requirements
The below requirements are needed on the local controller node that executes this inventory.
python >= 3.6
openstacksdk >= 1.0.0
Parameters
Parameter |
Comments |
---|---|
Lists servers from all projects Choices:
|
|
Toggle to enable/disable the caching of the inventory’s source data, requires a cache plugin setup to work. Choices:
Configuration:
|
|
Cache connection data or path, read cache plugin documentation for specifics. Configuration:
|
|
Cache plugin to use for the inventory’s source data. Default: Configuration:
|
|
Prefix to use for cache plugin files/tables. Default: Configuration:
|
|
Cache duration in seconds. Default: Configuration:
|
|
Override path to If this value is given it will be searched first. Search paths for cloud credentials are complemented with files Default search paths are documented in https://docs.openstack.org/os-client-config/latest/user/configuration.html#config-files. Configuration:
|
|
Create vars from jinja2 expressions. Default: |
|
Enrich server facts with additional queries to OpenStack services. This includes requests to Cinder and Neutron which can be time-consuming for clouds with many servers. Default value of expand_hostvars is opposite of the default value for option Choices:
|
|
Whether the inventory script fails, returning no hosts, when connection to a cloud failed, for example due to bad credentials or connectivity issues. When fail_on_errors is Default value of fail_on_errors is opposite of the default value for option Choices:
|
|
Add hosts to group based on Jinja2 conditionals. Default: |
|
What to register as inventory hostname. When set to When set to Default value of inventory_hostname is opposite of the default value for option Choices:
|
|
Add hosts to group based on the values of a variable. Default: |
|
The default value when the host variable’s value is an empty string. This option is mutually exclusive with |
|
The key from input dictionary used to generate groups. |
|
parent group for keyed group. |
|
A keyed group name will start with this prefix. Default: |
|
separator used to build the keyed group name. Default: |
|
Set this option to This option is mutually exclusive with Choices:
|
|
Use in conjunction with By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. This is because the default prefix is Set this option to If the group name is derived from a mapping the separator is still used to concatenate the items. To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead. Choices:
|
|
Automatically create groups from host variables. Choices:
|
|
List of clouds in Default: |
|
Use only ipv4 addresses for ansible_host and ansible_ssh_host. Using only_ipv4 helps when running Ansible in a ipv4 only setup. Choices:
|
|
Token which marks a given YAML configuration file as a valid input file for this inventory plugin. Choices:
|
|
Use private interfaces of servers, if available, when determining ip addresses for Ansible hosts. Using private helps when running Ansible from a server in the cloud and one wants to ensure that servers communicate over private networks only. Choices:
|
|
Whether all servers should be listed or not. When show_all is Choices:
|
|
If Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. Choices:
|
|
Merge extra vars into the available variables for composition (highest precedence). Choices:
Configuration:
|
|
When use_names is When use_names is Choices:
|
Examples
# Create a file called openstack.yaml, add the following content and run
# $> ansible-inventory --list -vvv -i openstack.yaml
plugin: openstack.cloud.openstack
all_projects: false
expand_hostvars: true
fail_on_errors: true
only_clouds:
- "devstack-admin"
strict: true