community.general.consul_kv (8.5.0) — module

Manipulate entries in the key/value store of a consul cluster

Authors: Steve Gargan (@sgargan), Colin Nolan (@colin-nolan)

Install collection

Install with ansible-galaxy collection install community.general:==8.5.0


Add to requirements.yml

  collections:
    - name: community.general
      version: 8.5.0

Description

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 C(value).

If the O(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

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add or update the value associated with a key in the key/value store
  community.general.consul_kv:
    key: somekey
    value: somevalue
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Remove a key from the store
  community.general.consul_kv:
    key: somekey
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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

Inputs

    
cas:
    description:
    - Used when acquiring a lock with a session. If the O(cas) is V(0), then Consul will
      only put the key if it does not already exist. If the O(cas) value is non-zero,
      then the key is only set if the index matches the ModifyIndex of that key.
    type: str

key:
    description:
    - The key at which the value should be stored.
    required: true
    type: str

host:
    default: localhost
    description:
    - Host of the consul agent.
    type: str

port:
    default: 8500
    description:
    - The port on which the consul agent is running.
    type: int

flags:
    description:
    - Opaque positive integer value that can be passed when setting a value.
    type: str

state:
    choices:
    - absent
    - acquire
    - present
    - release
    default: present
    description:
    - The action to take with the supplied key and value. If the state is V(present) and
      O(value) is set, the key contents will be set to the value supplied and C(changed)
      will be set to V(true) only if the value was different to the current contents.
      If the state is V(present) and O(value) is not set, the existing value associated
      to the key will be returned. The state V(absent) will remove the key/value pair,
      again C(changed) will be set to V(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 V(acquire) or V(release) respectively. a valid session
      must be supplied to make the attempt changed will be true if the attempt is successful,
      false otherwise.
    type: str

token:
    description:
    - The token key identifying an ACL rule set that controls access to the key value
      pair
    type: str

value:
    description:
    - The value should be associated with the given key, required if O(state) is V(present).
    type: str

scheme:
    default: http
    description:
    - The protocol scheme on which the consul agent is running.
    type: str

recurse:
    description:
    - If the key represents a prefix, each entry with the prefix can be retrieved by setting
      this to V(true).
    type: bool

session:
    description:
    - The session that should be used to acquire or release a lock associated with a key/value
      pair.
    type: str

retrieve:
    default: true
    description:
    - If the O(state) is V(present) and O(value) is set, perform a read after setting
      the value and return this value.
    type: bool

validate_certs:
    default: true
    description:
    - Whether to verify the tls certificate of the consul agent.
    type: bool