# tower_inventory_source – create, update, or destroy Ansible Tower inventory source

New in version 2.7.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Status

## Synopsis

- Create, update, or destroy Ansible Tower inventories source. See https://www.ansible.com/tower for an overview.

## Requirements

The below requirements are needed on the host that executes this module.

- ansible-tower-cli >= 3.0.2

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
credential - |  | Credential to use to retrieve the inventory from.
description - |  | The description to use for the inventory source.
group_by - |  | Specify which groups to create automatically. Group names will be created similar to the options selected. If blank, all groups above are created. Refer to Ansible Tower documentation for more detail.
instance_filters - |  | Provide a comma-separated list of filter expressions. Hosts are imported when all of the filters match. Refer to Ansible Tower documentation for more detail.
inventory - / required |  | The inventory the source is linked to.
name - / required |  | The name to use for the inventory source.

overwrite
boolean

Choices:
- no
- yes

If set, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the "all" default group for the inventory. When not checked, local child hosts and groups not found on the external source will remain untouched by the inventory update process.

overwrite_vars
boolean

Choices:
- no
- yes

If set, all variables for child groups and hosts will be removed and replaced by those found on the external source. When not checked, a merge will be performed, combining local variables with those found on the external source.

source
- / required

Choices:
- file
- scm
- ec2
- gce
- azure
- azure_rm
- vmware
- satellite6
- cloudforms
- openstack
- rhv
- tower
- custom

Types of inventory source.

source_path - |  | Path to the file to use as a source in the selected *project*.
source_project - |  | Use a *project* as a source for the *inventory*.
source_regions - |  | List of regions for your cloud provider. You can include multiple all regions. Only Hosts associated with the selected regions will be updated. Refer to Ansible Tower documentation for more detail.
source_script - |  | The source custom script to use to build the inventory. It needs to exist.
source_vars - |  | The source_vars allow to Override variables found in the source config file. For example with Openstack, specifying *private: false* would change the output of the openstack.py script. It has to be YAML or JSON.

state
-

Choices:
- present ←
- absent

Desired state of the resource.

timeout - |  | Number in seconds after which the Tower API methods will time out.
tower_config_file path |  | Path to the Tower config file.
tower_host string |  | URL to your Tower instance.
tower_password string |  | Password for your Tower instance.
tower_username string |  | Username for your Tower instance.
update_cache_timeout - |  | Time in seconds to consider an inventory sync to be current. During job runs and callbacks the task system will evaluate the timestamp of the latest sync. If it is older than Cache Timeout, it is not considered current, and a new inventory sync will be performed.

update_on_launch
boolean

Choices:
- no
- yes

Each time a job runs using this inventory, refresh the inventory from the selected source before executing job tasks.

update_on_project_update
boolean

Choices:
- no
- yes

That parameter will sync the inventory when the project is synced. It can only be used with a SCM source.

validate_certs
boolean

Choices:
- no
- yes

Tower option to avoid certificates check.
aliases: tower_verify_ssl

## Notes

Note

- If no config_file is provided we will attempt to use the tower-cli library defaults to find your Tower host information.

- config_file should contain Tower configuration in the following format host=hostname username=username password=password

## Examples

    - name: Add tower inventory source
      tower_inventory_source:
        name: Inventory source
        description: My Inventory source
        inventory: My inventory
        credential: Devstack_credential
        source: openstack
        update_on_launch: true
        overwrite: true
        source_vars: '{ private: false }'
        state: present
        validate_certs: false

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Adrien Fleury (@fleu42)

Hint

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