community.general.consul_kv – Fetch metadata from a Consul key value store.
Note
This plugin is part of the community.general collection (version 2.0.1).
To install it use: ansible-galaxy collection install community.general.
To use it in a playbook, specify: community.general.consul_kv.
Synopsis
- Lookup metadata for a playbook from the key value store in a Consul cluster. Values can be easily set in the kv store with simple rest commands
- curl -X PUT -d 'some-value' http://localhost:8500/v1/kv/ansible/somedata
Requirements
The below requirements are needed on the local controller node that executes this lookup.
- python-consul python library https://python-consul.readthedocs.io/en/latest/#installation
Parameters
| Parameter | Choices/Defaults | Configuration | Comments | 
|---|---|---|---|
| _raw  list / elements=string  | List of key(s) to retrieve. | ||
| client_cert  string  |  ini entries:   [lookup_consul]  env:ANSIBLE_CONSUL_CLIENT_CERT  | The client cert to verify the ssl connection. | |
| datacenter  string  | Retrieve the key from a consul datacenter other than the default for the consul host. | ||
| host  string  | Default: "localhost" |  ini entries:   [lookup_consul]  env:ANSIBLE_CONSUL_URL  | The target to connect to, must be a resolvable address. Will be determined from  ANSIBLE_CONSUL_URLif that is set.ANSIBLE_CONSUL_URLshould look like this:https://my.consul.server:8500 | 
| index  string  | If the key has a value with the specified index then this is returned allowing access to historical values. | ||
| port  string  | Default: 8500 | The port of the target host to connect to. If you use  ANSIBLE_CONSUL_URLthis value will be used from there. | |
| recurse  boolean  | 
 | If true, will retrieve all the values that have the given key as prefix. | |
| scheme  string  | Default: "http" | Whether to use http or https. If you use  ANSIBLE_CONSUL_URLthis value will be used from there. | |
| token  string  | The acl token to allow access to restricted values. | ||
| url  string   added in 1.0.0 of community.general  |  ini entries:   [lookup_consul]  env:ANSIBLE_CONSUL_URL  | The target to connect to, should look like this:  https://my.consul.server:8500. | |
| validate_certs  string  | Default: "yes" |  ini entries:   [lookup_consul]  env:ANSIBLE_CONSUL_VALIDATE_CERTS  | Whether to verify the ssl connection or not. | 
Examples
- ansible.builtin.debug:
    msg: 'key contains {{item}}'
  with_community.general.consul_kv:
    - 'key/to/retrieve'
- name: Parameters can be provided after the key be more specific about what to retrieve
  ansible.builtin.debug:
    msg: 'key contains {{item}}'
  with_community.general.consul_kv:
    - 'key/to recurse=true token=E6C060A9-26FB-407A-B83E-12DDAFCB4D98'
- name: retrieving a KV from a remote cluster on non default port
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.consul_kv', 'my/key', host='10.10.10.10', port='2000') }}"
   Return Values
Common return values are documented here, the following are the fields unique to this lookup:
| Key | Returned | Description | 
|---|---|---|
| _raw  dictionary  | success | Value(s) stored in consul. | 
Authors
- Unknown (!UNKNOWN)
    © 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.11/collections/community/general/consul_kv_lookup.html