# tower_credential – create, update, or destroy Ansible Tower credential

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Status

## Synopsis

- Create, update, or destroy Ansible Tower credentials. 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
--- | --- | ---

authorize
boolean

Choices:
- no ←
- yes

Should use authorize for net type.

authorize_password string |  | Password for net credentials that require authorize.

become_method
string

Choices:
- None
- sudo
- su
- pbrun
- pfexec
- pmrun

Become method to use for privilege escalation.

become_password string |  | Become password. Use "ASK" and launch in Tower to be prompted.
become_username string |  | Become username. Use "ASK" and launch in Tower to be prompted.
client string |  | Client or application ID for azure_rm type.
description string |  | The description to use for the credential.
domain string |  | Domain for openstack type.
host string |  | Host for this credential.

kind
string / required

Choices:
- ssh
- vault
- net
- scm
- aws
- vmware
- satellite6
- cloudforms
- gce
- azure_rm
- openstack
- rhv
- insights
- tower

Type of credential being added.
The ssh choice refers to a Tower Machine credential.

name string / required |  | The name to use for the credential.
organization string / required |  | Organization that should own the credential.
password string |  | Password for this credential. ``secret_key`` for AWS. ``api_key`` for RAX. Use "ASK" and launch in Tower to be prompted.
project string |  | Project that should for this credential.
secret string |  | Secret token for azure_rm type.
security_token string added in 2.6 |  | STS token for aws type.
ssh_key_data string |  | SSH private key content. To extract the content from a file path, use the lookup function (see examples).
ssh_key_unlock string |  | Unlock password for ssh_key. Use "ASK" and launch in Tower to be prompted.

state
string

Choices:
- present ←
- absent

Desired state of the resource.

subscription string |  | Subscription ID for azure_rm type.
team string |  | Team that should own this credential.
tenant string |  | Tenant ID for azure_rm type.
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.
user string |  | User that should own this credential.
username string |  | Username for this credential. ``access_key`` for AWS.

validate_certs
boolean

Choices:
- no
- yes

Whether to allow insecure connections to Tower.
If `no`, SSL certificates will not be validated.
This should only be used on personally controlled sites using self-signed certificates.
aliases: tower_verify_ssl

vault_id string added in 2.8 |  | Vault identifier. This parameter is only valid if `kind` is specified as `vault`.
vault_password string |  | Vault password. Use "ASK" and launch in Tower to be prompted.

## 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 credential
      tower_credential:
        name: Team Name
        description: Team Description
        organization: test-org
        kind: ssh
        state: present
        tower_config_file: "~/tower_cli.cfg"

    - name: Create a valid SCM credential from a private_key file
      tower_credential:
        name: SCM Credential
        organization: Default
        state: present
        kind: scm
        username: joe
        password: secret
        ssh_key_data: "{{ lookup('file', '/tmp/id_rsa') }}"
        ssh_key_unlock: "passphrase"

    - name: Fetch private key
      slurp:
        src: '$HOME/.ssh/aws-private.pem'
      register: aws_ssh_key
    - name: Add Credential Into Tower
      tower_credential:
        name: Workshop Credential
        ssh_key_data: "{{ aws_ssh_key['content'] | b64decode }}"
        kind: ssh
        organization: Default
        tower_username: admin
        tower_password: ansible
        tower_host: https://localhost
      run_once: true
      delegate_to: localhost

## Status

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

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

### Authors

- Wayne Witzel III (@wwitzel3)

Hint

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