- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# docker_machine – Docker Machine inventory source

- Synopsis
- Requirements
- Parameters
- Examples
- Status

## Synopsis

- Get inventory hosts from Docker Machine.
- Uses a YAML configuration file that ends with docker_machine.(yml|yaml).
- The plugin sets standard host variables `ansible_host`, `ansible_port`, `ansible_user` and `ansible_ssh_private_key`.
- The plugin stores the Docker Machine ‘env’ output variables in dm_ prefixed host variables.

## Requirements

The below requirements are needed on the local master node that executes this inventory.

- Docker Machine

## Parameters

Parameter | Choices/Defaults | Configuration | Comments
--- | --- | --- | ---
compose dictionary | Default: {} |  | Create vars from jinja2 expressions.
daemon_env string | Choices: require ← require-silently optional optional-silently skip |  | Whether docker daemon connection environment variables should be fetched, and how to behave if they cannot be fetched. With `require` and `require-silently`, fetch them and skip any host for which they cannot be fetched. A warning will be issued for any skipped host if the choice is `require`. With `optional` and `optional-silently`, fetch them and not skip hosts for which they cannot be fetched. A warning will be issued for hosts where they cannot be fetched if the choice is `optional`. With `skip`, do not attempt to fetch the docker daemon connection environment variables. If fetched successfully, the variables will be prefixed with dm_ and stored as host variables.
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.
plugin - / required | Choices: docker_machine |  | token that ensures this is a source file for the `docker_machine` plugin.
running_required boolean | Choices: no yes ← |  | when true, hosts which Docker Machine indicates are in a state other than `running` will be skipped.
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.
verbose_output boolean | Choices: no yes ← |  | when true, include all available nodes metadata (e.g. Image, Region, Size) as a JSON object named `docker_machine_node_attributes`.

## Examples

    # Minimal example
    plugin: docker_machine

    # Example using constructed features to create a group per Docker Machine driver
    # (https://docs.docker.com/machine/drivers/), e.g.:
    #   $ docker-machine create --driver digitalocean ... mymachine
    #   $ ansible-inventory -i ./path/to/docker-machine.yml --host=mymachine
    #   {
    #     ...
    #     "digitalocean": {
    #       "hosts": [
    #           "mymachine"
    #       ]
    #     ...
    #   }
    strict: no
    keyed_groups:
      - separator: ''
        key: docker_machine_node_attributes.DriverName

    # Example grouping hosts by Digital Machine tag
    strict: no
    keyed_groups:
      - prefix: tag
        key: 'dm_tags'

    # Example using compose to override the default SSH behaviour of asking the user to accept the remote host key
    compose:
      ansible_ssh_common_args: '"-o StrictHostKeyChecking=accept-new"'

## Status

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

### Authors

- Ximon Eighteen (@ximon18)

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.