community.general.consul_kv 模块 – 操作 Consul 集群的键/值存储中的条目

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:community.general.consul_kv

概要

  • 允许通过代理检索、添加、修改和删除 Consul 集群中的键/值条目。记录的全部内容,包括索引、标志和会话,都将作为 value 返回。

  • 如果 key 表示前缀,则请注意,当删除值时,如果存在,则会将现有值作为结果的一部分返回。

  • 有关更多详细信息,请参见 http://www.consul.io/docs/agent/http.html#kv

要求

执行此模块的主机需要满足以下要求。

  • python-consul

  • requests

参数

参数

注释

cas

字符串

当使用会话获取锁时使用。如果 cas0,则仅当键不存在时,Consul 才会放置该键。如果 cas 值非零,则仅当索引与该键的 ModifyIndex 匹配时,才会设置该键。

数据中心

字符串

在 community.general 10.0.0 中添加

要查询的数据中心的名称。如果未指定,则查询将默认为 host 上的 Consul 代理的数据中心。

标志

字符串

设置值时可以传递的不透明正整数值。

主机

字符串

Consul 代理的主机。

默认值: "localhost"

字符串 / 必需

应存储值的键。

端口

整数

Consul 代理正在运行的端口。

默认值: 8500

递归

布尔值

如果该键表示前缀,则可以通过将此设置为 true 来检索每个具有该前缀的条目。

选项

  • false

  • true

检索

布尔值

如果 statepresent 并且设置了 value,则在设置值后执行读取并返回此值。

选项

  • false

  • true ← (默认)

方案

字符串

Consul 代理正在运行的协议方案。

默认值: "http"

会话

字符串

应用于获取或释放与键/值对关联的锁的会话。

状态

字符串

使用提供的键和值执行的操作。如果状态为 present 并且设置了 value,则键的内容将设置为提供的值,并且仅当值与当前内容不同时,changed 才会设置为 true。如果状态为 present 并且未设置 value,则将返回与键关联的现有值。状态 absent 将删除键/值对,同样,仅当键在删除之前实际存在时,changed 才会设置为 true。可以使用状态 acquirerelease 分别尝试获取或释放与键/值对关联的锁。必须提供有效的会话才能进行尝试,如果尝试成功,则更改将为 true,否则为 false。

选项

  • "absent"

  • "acquire"

  • "present" ← (默认)

  • "release"

令牌

字符串

标识控制对键值对访问的 ACL 规则集的令牌密钥

验证证书

布尔值

是否验证 Consul 代理的 TLS 证书。

选项

  • false

  • true ← (默认)

字符串

该值应该与给定的键关联,如果 statepresent 时,则为必填项。

属性

属性

支持

描述

check_mode

支持:完全

可以在 check_mode 模式下运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

在 diff 模式下,将返回有关已更改的内容(或可能需要在 check_mode 模式下更改的内容)的详细信息。

示例

# 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)