community.general.consul_kv – Управление записями в хранилище ключ/значение кластера Consul
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в плейбуке, укажите: community.general.consul_kv.
Описание
- Позволяет извлекать, добавлять, изменять и удалять записи ключ/значение в кластере Consul через агента. Полное содержимое записи, включая индексы, флаги и сессию, возвращается как
value. - Если
keyпредставляет собой префикс, то при удалении значения возвращается существующее значение (если оно есть) в качестве части результатов. - Для получения более подробной информации обратитесь к http://www.consul.io/docs/agent/http.html#kv.
Требования
Нижеперечисленные требования необходимы на хосте, на котором выполняется этот модуль.
- python-consul
- requests
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| cas строка | Используется при получении блокировки с сессией. Если cas равно 0, Consul добавит ключ только если он еще не существует. Если значение cas отлично от нуля, то ключ устанавливается только в том случае, если индекс совпадает с ModifyIndex этого ключа. | |
| flags строка | Непрозрачное положительное целое значение, которое можно передать при установке значения. | |
| host строка | По умолчанию: "localhost" | Хост агента Consul. |
| key строка / обязательно | Ключ, по которому должно храниться значение. | |
| port целое число | По умолчанию: 8500 | Порт, на котором работает агент Consul. |
| recurse булево |
| Если ключ представляет собой префикс, каждую запись с префиксом можно получить, установив это значение в yes. |
| retrieve булево |
| Если состояние равно present и значение задано, выполнить чтение после установки значения и вернуть это значение. |
| scheme строка | По умолчанию: "http" | Схема протокола, на котором работает агент Consul. |
| session строка | Сессия, которая должна быть использована для получения или освобождения блокировки, связанной с парой ключ/значение. | |
| state строка |
| Действие, которое нужно выполнить с заданным ключом и значением. Если состояние равно 'present' и `value` задано, содержимое ключа будет установлено в предоставленное значение и `changed` будет установлено в `true` только если значение отличалось от текущего содержимого. Если состояние равно 'present' и `value` не задано, будет возвращено существующее значение, связанное с ключом. Состояние 'absent' удалит пару ключ/значение, и снова `changed` будет установлено в true только если ключ существовал до удаления. Можно попытаться получить или освободить блокировку, связанную с парой ключ/значение, с состояниями 'acquire' или 'release' соответственно. Для этого необходимо предоставить действительную сессию. Изменение будет true, если попытка успешна, false в противном случае. |
| token строка | Ключ токена, определяющий набор правил ACL, который контролирует доступ к паре ключ/значение | |
| validate_certs булево |
| Нужно ли проверять TLS-сертификат агента Consul. |
| value строка | Значение, которое должно быть связано с данным ключом. Требуется, если state равно present. |
Примеры
# 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
Авторы
- Steve Gargan (@sgargan)
- Colin Nolan (@colin-nolan)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/consul_kv_module.html