tower – Ansible dynamic inventory plugin for Ansible Tower — Ansible Documentation

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

Documentation

# tower – Ansible dynamic inventory plugin for Ansible Tower

New in version 2.7.

- Synopsis
- Parameters
- Examples
- Status

## Synopsis

- Reads inventories from Ansible Tower.
- Supports reading configuration from both YAML config file and environment variables.
- If reading from the YAML file, the file name must end with tower.(yml|yaml) or tower_inventory.(yml|yaml), the path in the command would be /path/to/tower_inventory.(yml|yaml). If some arguments in the config file are missing, this plugin will try to fill in missing arguments by reading from environment variables.
- If reading configurations from environment variables, the path in the command must be @tower_inventory.

## Parameters

Parameter | Choices/Defaults | Configuration | Comments
--- | --- | --- | ---
host string / required |  | env:TOWER_HOST | The network address of your Ansible Tower host.
include_metadata boolean added in 2.8 | Choices: no ← yes |  | Make extra requests to provide all group vars with metadata about the source Ansible Tower host.
inventory_id string / required |  | env:TOWER_INVENTORY | The ID of the Ansible Tower inventory that you wish to import.
password string / required |  | env:TOWER_PASSWORD | The password for your Ansible Tower user.
plugin - / required | Choices: tower | env:ANSIBLE_INVENTORY_ENABLED | the name of this plugin, it should always be set to 'tower' for this plugin to recognize it as it's own.
username string / required |  | env:TOWER_USERNAME | The user that you plan to use to access inventories on Ansible Tower.
validate_certs boolean | Choices: no yes ← | env:TOWER_VERIFY_SSL | Specify whether Ansible should verify the SSL certificate of Ansible Tower host. aliases: verify_ssl

## Examples

    # Before you execute the following commands, you should make sure this file is in your plugin path,
    # and you enabled this plugin.

    # Example for using tower_inventory.yml file

    plugin: tower
    host: your_ansible_tower_server_network_address
    username: your_ansible_tower_username
    password: your_ansible_tower_password
    inventory_id: the_ID_of_targeted_ansible_tower_inventory
    # Then you can run the following command.
    # If some of the arguments are missing, Ansible will attempt to read them from environment variables.
    # ansible-inventory -i /path/to/tower_inventory.yml --list

    # Example for reading from environment variables:

    # Set environment variables:
    # export TOWER_HOST=YOUR_TOWER_HOST_ADDRESS
    # export TOWER_USERNAME=YOUR_TOWER_USERNAME
    # export TOWER_PASSWORD=YOUR_TOWER_PASSWORD
    # export TOWER_INVENTORY=THE_ID_OF_TARGETED_INVENTORY
    # Read the inventory specified in TOWER_INVENTORY from Ansible Tower, and list them.
    # The inventory path must always be @tower_inventory if you are reading all settings from environment variables.
    # ansible-inventory -i @tower_inventory --list

## Status

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

### Authors

- Matthew Jones (@matburt)
- Yunfan Zhang (@YunfanZhang42)

Hint

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