community.general.virtualbox – virtualbox inventory source
Note
This plugin is part of the community.general collection (version 2.0.1).
To install it use: ansible-galaxy collection install community.general.
To use it in a playbook, specify: community.general.virtualbox.
Synopsis
- Get inventory hosts from the local virtualbox installation.
- Uses a YAML configuration file that ends with virtualbox.(yml|yaml) or vbox.(yml|yaml).
- The inventory_hostname is always the ‘Name’ of the virtualbox instance.
Parameters
| Parameter | Choices/Defaults | Configuration | Comments | 
|---|---|---|---|
| cache  boolean  | 
 |  ini entries:   [inventory]  env:ANSIBLE_INVENTORY_CACHE  | Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work. | 
| cache_connection  string  |  ini entries:   [defaults]  [inventory]  env:ANSIBLE_CACHE_PLUGIN_CONNECTION   env:ANSIBLE_INVENTORY_CACHE_CONNECTION  | Cache connection data or path, read cache plugin documentation for specifics. | |
| cache_plugin  string  | Default: "memory" |  ini entries:   [defaults]  [inventory]  env:ANSIBLE_CACHE_PLUGIN   env:ANSIBLE_INVENTORY_CACHE_PLUGIN  | Cache plugin to use for the inventory's source data. | 
| cache_prefix  string  | Default: "ansible_inventory_" |  ini entries:   [default]  [inventory]  env:ANSIBLE_CACHE_PLUGIN_PREFIX   env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX  | Prefix to use for cache plugin files/tables | 
| cache_timeout  integer  | Default: 3600 |  ini entries:   [defaults]  [inventory]  env:ANSIBLE_CACHE_PLUGIN_TIMEOUT   env:ANSIBLE_INVENTORY_CACHE_TIMEOUT  | Cache duration in seconds | 
| compose  dictionary  | Default: {} | Create vars from jinja2 expressions. | |
| groups  dictionary  | Default: {} | Add hosts to group based on Jinja2 conditionals. | |
| keyed_groups  list / elements=string  | Default: [] | Add hosts to group based on the values of a variable. | |
| leading_separator  boolean   added in 2.11 of ansible.builtin  | 
 | Use in conjunction with keyed_groups. 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 "" and the default separator is "_". Set this option to False to omit the leading underscore (or other separator) if no prefix is given. 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. | |
| network_info_path  string  | Default: "/VirtualBox/GuestInfo/Net/0/V4/IP" | property path to query for network information (ansible_host) | |
| plugin  string / required  | 
 | token that ensures this is a source file for the 'virtualbox' plugin | |
| query  dictionary  | Default: {} | create vars from virtualbox properties | |
| running_only  boolean  | 
 | toggles showing all vms vs only those currently running | |
| settings_password_file  string  | provide a file containing the settings password (equivalent to --settingspwfile) | ||
| strict  boolean  | 
 | If  yesmake invalid entries a fatal error, otherwise skip and continue.Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. | |
| use_extra_vars  boolean   added in 2.11 of ansible.builtin  | 
 |  ini entries:   [inventory_plugins]  env:ANSIBLE_INVENTORY_USE_EXTRA_VARS  | Merge extra vars into the available variables for composition (highest precedence). | 
Examples
# file must be named vbox.yaml or vbox.yml
simple_config_file:
    plugin: community.general.virtualbox
    settings_password_file: /etc/virtulbox/secrets
    query:
      logged_in_users: /VirtualBox/GuestInfo/OS/LoggedInUsersList
    compose:
      ansible_connection: ('indows' in vbox_Guest_OS)|ternary('winrm', 'ssh')
# add hosts (all match with minishift vm) to the group container if any of the vms are in ansible_inventory'
plugin: community.general.virtualbox
groups:
  container: "'minis' in (inventory_hostname)"
  Authors
- Unknown (!UNKNOWN)
    © 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.11/collections/community/general/virtualbox_inventory.html