community.general.consul_kv – Manipulate entries in the key/value store of a consul cluster
Note
This plugin is part of the community.general collection (version 3.8.3).
You might already have this collection installed if you are using the ansible
package.
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.general
.
To use it in a playbook, specify: community.general.consul_kv
.
Synopsis
Allows the retrieval, addition, modification and deletion of key/value entries in a consul cluster via the agent. The entire contents of the record, including the indices, flags and session are returned as
value
.If the
key
represents a prefix then note that when a value is removed, the existing value if any is returned as part of the results.See http://www.consul.io/docs/agent/http.html#kv for more details.
Requirements
The below requirements are needed on the host that executes this module.
python-consul
requests
Parameters
Parameter |
Comments |
---|---|
Used when acquiring a lock with a session. If the |
|
Opaque positive integer value that can be passed when setting a value. |
|
Host of the consul agent. Default: “localhost” |
|
The key at which the value should be stored. |
|
The port on which the consul agent is running. Default: 8500 |
|
If the key represents a prefix, each entry with the prefix can be retrieved by setting this to Choices:
|
|
If the state is Choices:
|
|
The protocol scheme on which the consul agent is running. Default: “http” |
|
The session that should be used to acquire or release a lock associated with a key/value pair. |
|
The action to take with the supplied key and value. If the state is ‘present’ and value is set, the key contents will be set to the value supplied and changed will be set to true only if the value was different to the current contents. If the state is ‘present’ and value is not set, the existing value associated to the key will be returned. The state ‘absent’ will remove the key/value pair, again ‘changed’ will be set to true only if the key actually existed prior to the removal. An attempt can be made to obtain or free the lock associated with a key/value pair with the states ‘acquire’ or ‘release’ respectively. a valid session must be supplied to make the attempt changed will be true if the attempt is successful, false otherwise. Choices:
|
|
The token key identifying an ACL rule set that controls access to the key value pair |
|
Whether to verify the tls certificate of the consul agent. Choices:
|
|
The value should be associated with the given key, required if |
Examples
# If the key does not exist, the value associated to the "data" property in `retrieved_key` will be `None`
# If the key value is empty string, `retrieved_key["data"]["Value"]` will be `None`
- name: Retrieve a value from the key/value store
community.general.consul_kv:
key: somekey
register: retrieved_key
- name: Add or update the value associated with a key in the key/value store
community.general.consul_kv:
key: somekey
value: somevalue
- name: Remove a key from the store
community.general.consul_kv:
key: somekey
state: absent
- name: Add a node to an arbitrary group via consul inventory (see consul.ini)
community.general.consul_kv:
key: ansible/groups/dc1/somenode
value: top_secret
- name: Register a key/value pair with an associated session
community.general.consul_kv:
key: stg/node/server_birthday
value: 20160509
session: "{{ sessionid }}"
state: acquire
Authors
Steve Gargan (@sgargan)
Colin Nolan (@colin-nolan)