On this page
community.general.consul_kv – Fetch metadata from a Consul key value store.
Note
This plugin is part of the community.general collection (version 3.8.1).
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
- 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_URL if that is set.
       ANSIBLE_CONSUL_URL should 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_URL this 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_URL this 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/latest/collections/community/general/consul_kv_lookup.html