community.hashi_vault.vault_database_static_role_create module – Create or update a static role
Note
This module is part of the community.hashi_vault collection (version 6.3.0-dev0).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.hashi_vault
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.hashi_vault.vault_database_static_role_create
.
New in community.hashi_vault 6.2.0
Synopsis
Requirements
The below requirements are needed on the host that executes this module.
hvac
(Python library)For detailed requirements, see the collection requirements page.
Parameters
Parameter |
Comments |
---|---|
Authentication method to be used.
Choices:
|
|
The AWS access key to use. |
|
If specified, sets the value to use for the |
|
The AWS profile |
|
The AWS secret key that corresponds to the access key. |
|
The AWS security token if using temporary access and secret keys. |
|
The client ID (also known as application ID) of the Azure AD service principal or managed identity. Should be a UUID. If not specified, will use the system assigned managed identity. |
|
The client secret of the Azure AD service principal. |
|
The resource URL for the application registered in Azure Active Directory. Usually should not be changed from the default. Default: |
|
The Azure Active Directory Tenant ID (also known as the Directory ID) of the service principal. Should be a UUID. Required when using a service principal to authenticate to Vault, e.g. required when both azure_client_id and azure_client_secret are specified. Optional when using managed identity to authenticate to Vault. |
|
Path to certificate to use for authentication. If not specified by any other means, the |
|
For |
|
For |
|
The connection name under which the role should be created. |
|
The database username - Note that the user must exist in the target database! |
|
The path where the secret backend is mounted. |
|
The JSON Web Token (JWT) to use for JWT authentication to Vault. |
|
Vault mount point. If not specified, the default mount point for a given auth method is used. Does not apply to token authentication. |
|
Vault namespace where secrets reside. This option requires HVAC 0.7.0+ and Vault 0.11+. Optionally, this may be achieved by prefixing the authentication mount point and/or secret path with the namespace (e.g If environment variable |
|
Authentication password. |
|
URL(s) to the proxies used to access the Vault service. It can be a string or a dict. If it’s a dict, provide the scheme (eg. If it’s a string, provide a single URL that will be used as the proxy for both A string that can be interpreted as a dictionary will be converted to one (see examples). You can specify a different proxy for HTTP and HTTPS resources. If not specified, environment variables from the Requests library are used. |
|
The AWS region for which to create the connection. |
|
Allows for retrying on errors, based on the Retry class in the urllib3 library. This collection defines recommended defaults for retrying connections to Vault. This option can be specified as a positive number (integer) or dictionary. If this option is not specified or the number is A number sets the total number of retries, and uses collection defaults for the other settings. A dictionary value is used directly to initialize the For detailed information on retries, see the collection User Guide. |
|
Controls whether and how to show messages on retries. This has no effect if a request is not retried. Choices:
|
|
Vault Role ID or name. Used in For For |
|
The name of the role that should be created. |
|
Password rotation period in seconds (defaults to 24hs) Default: |
|
SQL statements to rotate the password for the given |
|
Secret ID to be used for Vault AppRole authentication. |
|
Sets the connection timeout in seconds. If not set, then the |
|
Vault token. Token may be specified explicitly, through the listed [env] vars, and also through the If no token is supplied, explicitly or through env, then the plugin will check for a token file, as determined by token_path and token_file. The order of token loading (first found wins) is |
|
If no token is specified, will try to read the token from this file in token_path. Default: |
|
If no token is specified, will try to read the token_file from this path. |
|
For token auth, will perform a Disable if your token does not have the Choices:
|
|
URL to the Vault service. If not specified by any other means, the value of the If |
|
Authentication user name. |
|
Controls verification and validation of SSL certificates, mostly you only want to turn off with self signed ones. Will be populated with the inverse of Will default to Choices:
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Action group: community.hashi_vault.vault |
Use |
|
Support: partial In check mode, a sample response will be returned, but the role creation will not be performed in Hashicorp Vault. |
Can run in |
Notes
Note
This module always reports
changed
status because it cannot guarantee idempotence.Use
changed_when
to control that in cases where the operation is known to not change state.
Examples
- name: Generate rotation statement
ansible.builtin.set_fact:
rotation_statements = ["ALTER USER \"{{name}}\" WITH PASSWORD '{{password}}';"]
- name: Create / update Static Role with the default mount point
community.hashi_vault.vault_database_static_role_create:
url: https://vault:8201
auth_method: userpass
username: '{{ user }}'
password: '{{ passwd }}'
connection_name: SomeConnection
role_name: SomeRole
db_username: '{{ db_username}}'
rotation_statements: '{{ rotation_statements }}'
register: response
- name: Display the result of the operation
ansible.builtin.debug:
msg: "{{ result }}"
- name: Create / update Static Role with a custom mount point
community.hashi_vault.vault_database_static_role_create:
url: https://vault:8201
auth_method: userpass
username: '{{ user }}'
password: '{{ passwd }}'
engine_mount_point: db1
connection_name: SomeConnection
role_name: SomeRole
db_username: '{{ db_username}}'
rotation_statements: '{{ rotation_statements }}'
register: response
- name: Display the result of the operation
ansible.builtin.debug:
msg: "{{ result }}"