On this page
community.general.etcd3 – Get key values from etcd3 server
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.etcd3.
New in version 0.2.0: of community.general
Synopsis
- Retrieves key values and/or key prefixes from etcd3 server using its native gRPC API.
 - Try to reuse community.general.etcd3 options for connection parameters, but add support for some 
ETCDCTL_*environment variables. - See https://github.com/etcd-io/etcd/tree/master/Documentation/op-guide for etcd overview.
 
Requirements
The below requirements are needed on the local controller node that executes this lookup.
- etcd3 >= 0.10
 
Parameters
| Parameter | Choices/Defaults | Configuration | Comments | 
|---|---|---|---|
| _terms
        
        list / elements=string / required
         | 
      
        
        The list of keys (or key prefixes) to look up on the etcd3 server.
         | 
     ||
| ca_cert
        
        string
         | 
      
        
        env:ETCDCTL_CACERT
         | 
      
        
        etcd3 CA authority.
         | 
     |
| cert_cert
        
        string
         | 
      
        
        env:ETCDCTL_CERT
         | 
      
        
        etcd3 client certificate.
         | 
     |
| cert_key
        
        string
         | 
      
        
        env:ETCDCTL_KEY
         | 
      
        
        etcd3 client private key.
         | 
     |
| endpoints
        
        string
         | 
      Default: 
        "127.0.0.1:2379"
         | 
      
        
        env:ETCDCTL_ENDPOINTS
         | 
      
        
        Counterpart of  
       ETCDCTL_ENDPOINTS environment variable. Specify the etcd3 connection with and URL form eg. https://hostname:2379 or <host>:<port> form.
       
        The  
       host part is overwritten by host option, if defined.
       
        The  port part is overwritten by port option, if defined.
        | 
     
| host
        
        string
         | 
      
        
        etcd3 listening client host.
        
       
        Takes precedence over endpoints.
         | 
     ||
| password
        
        string
         | 
      
        
        env:ETCDCTL_PASSWORD
         | 
      
        
        Authenticated user password.
         | 
     |
| port
        
        integer
         | 
      
        
        etcd3 listening client port.
        
       
        Takes precedence over endpoints.
         | 
     ||
| prefix
        
        boolean
         | 
      
       
  | 
      
        
        Look for key or prefix key.
         | 
     |
| timeout
        
        integer
         | 
      Default: 
        60
         | 
      
        
        env:ETCDCTL_DIAL_TIMEOUT
         | 
      
        
        Client timeout.
         | 
     
| user
        
        string
         | 
      
        
        env:ETCDCTL_USER
         | 
      
        
        Authenticated user name.
         | 
     
Notes
Note
- host and port options take precedence over (endpoints) option.
 - The recommended way to connect to etcd3 server is using 
ETCDCTL_ENDPOINTenvironment variable and keep endpoints, host, and port unused. 
See Also
See also
- community.general.etcd3
 - 
     
The official documentation on the community.general.etcd3 module.
 - etcd – get info from an etcd server
 - 
     
The etcd v2 lookup.
 
Examples
- name: "a value from a locally running etcd"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.etcd3', 'foo/bar') }}"
- name: "values from multiple folders on a locally running etcd"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.etcd3', 'foo', 'bar', 'baz') }}"
- name: "look for a key prefix"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.etcd3', '/foo/bar', prefix=True) }}"
- name: "connect to etcd3 with a client certificate"
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.etcd3', 'foo/bar', cert_cert='/etc/ssl/etcd/client.pem', cert_key='/etc/ssl/etcd/client.key') }}"
  Return Values
Common return values are documented here, the following are the fields unique to this lookup:
| Key | Returned | Description | |
|---|---|---|---|
| _raw
        
        list / elements=dictionary
         | 
      success | 
        
        List of keys and associated values.
          | 
     |
| key
        
        string
         | 
      success | 
        
        The element's key.
          | 
     |
| value
        
        string
         | 
      success | 
        
        The element's value.
          | 
     |
Authors
- Eric Belhomme (@eric-belhomme) <ebelhomme@fr.scc.com>
 
© 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/etcd3_lookup.html