# virtualbox – virtualbox inventory source

- Synopsis
- Parameters
- Examples
- Status

## 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

Choices:
- no ←
- yes

ini entries:

[inventory]
cache = no

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] fact_caching_connection = VALUE [inventory] cache_connection = VALUE 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] fact_caching = memory [inventory] cache_plugin = memory env:ANSIBLE_CACHE_PLUGIN env:ANSIBLE_INVENTORY_CACHE_PLUGIN | Cache plugin to use for the inventory's source data.
cache_prefix - | Default: "ansible_inventory_" | ini entries: [default] fact_caching_prefix = ansible_inventory_ [inventory] cache_prefix = ansible_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] fact_caching_timeout = 3600 [inventory] cache_timeout = 3600 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 | Default: [] |  | Add hosts to group based on the values of a variable.
network_info_path - | Default: "/VirtualBox/GuestInfo/Net/0/V4/IP" |  | property path to query for network information (ansible_host)

plugin
- / required

Choices:
- virtualbox

token that ensures this is a source file for the 'virtualbox' plugin

query dictionary | Default: {} |  | create vars from virtualbox properties
running_only boolean | Default: "no" |  | toggles showing all vms vs only those currently running
settings_password_file - |  |  | provide a file containing the settings password (equivalent to --settingspwfile)

strict
boolean

Choices:
- no ←
- yes

If `yes` make 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.

## Examples

    # file must be named vbox.yaml or vbox.yml
    simple_config_file:
        plugin: 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: virtualbox
    groups:
      container: "'minis' in (inventory_hostname)"

## Status

- This inventory is not guaranteed to have a backwards compatible interface. [preview]
- This inventory is maintained by the Ansible Community. [community]

### Authors

- UNKNOWN

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.