vbotka.freebsd.iocage inventory – iocage inventory source
Note
This inventory plugin is part of the vbotka.freebsd collection (version 0.2.7).
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 vbotka.freebsd.
You need further requirements to be able to use this inventory plugin,
see Requirements for details.
To use it in a playbook, specify: vbotka.freebsd.iocage.
New in vbotka.freebsd 10.2.0
Synopsis
Get inventory hosts from the iocage jail manager.
Uses a configuration file as an inventory source, it must end in
.iocage.ymlor.iocage.yaml.
Requirements
The below requirements are needed on the local controller node that executes this inventory.
iocage >= 1.8
Parameters
Parameter |
Comments |
|---|---|
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:
|
|
Create vars from jinja2 expressions. Default: |
|
Get jails’ properties. Creates dictionary Choices:
|
|
Add hosts to group based on Jinja2 conditionals. Default: |
|
The ip/name of the |
|
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:
|
|
The name of this plugin, it should always be set to 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:
|
|
Notes
Note
You might want to test the command
ssh user@host iocage list -lon the controller before using this inventory plugin.If you run this inventory plugin on
localhostsshis not used. In this case, test the commandiocage list -l.This inventory plugin creates variables
iocage_*for each added host.The values of these variables are collected from the output of the command
iocage list -lThe names of these variables correspond to the output columns.
The column
NAMEis used to name the added host.
Examples
# file name must end with iocage.yaml or iocage.yml
plugin: vbotka.freebsd.iocage
host: 10.1.0.73
user: admin
# user is not required if iocage is running on localhost
plugin: vbotka.freebsd.iocage
host: localhost
# run cryptography without legacy algorithms
plugin: vbotka.freebsd.iocage
host: 10.1.0.73
user: admin
env:
- CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
# enable cache
plugin: vbotka.freebsd.iocage
host: 10.1.0.73
user: admin
env:
- CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
cache: true
# see inventory plugin ansible.builtin.constructed
plugin: vbotka.freebsd.iocage
host: 10.1.0.73
user: admin
env:
- CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
cache: true
strict: false
compose:
ansible_host: iocage_ip4
release: iocage_release | split('-') | first
groups:
test: inventory_hostname.startswith('test')
keyed_groups:
- prefix: distro
key: iocage_release
- prefix: state
key: iocage_state