在 Consul 中以 key/value 对保存列表

Save list in key/value pair in Consul

我想这可能适用于任何 key/value 存储类型,但我主要使用 Consul 进行存储。我需要一种将列表保存在键值中的方法。但是,元素周围的引号被删除。

我都试过了,问题是我需要它们 return 作为有效列表,这样我就可以 运行 通过 Ansible w/ with_flattened

curl -X PUT -d '['ui','dashboard']' http://localhost:8500/v1/kv/deploylist
curl -X PUT -d '[\'ui\',\'dashboard']' http://localhost:8500/v1/kv/deploylist

Ansible 任务:

- debug: msg="{{ deploylist_vars.value | map(attribute='Value') | first }}"
  register: module_id

# Output 
"msg": "[ui,dashboard]"

我需要遍历列表并执行进一步的操作。但是,我似乎无法正确解析元素。

- debug: msg="{{ item }}"
  with_flattened:
    - "{{ module_id }}"

这些引用看起来都不太正确。我希望您想要一些 JSON 之类的 PUT,可能 ["ui","dashboard"]。以下应该让 bash/zsh 通过:

curl -X PUT -d '["ui","dashboard"]' http://localhost:8500/v1/kv/deploylist

您可以进一步在单引号内进行一些反斜杠转义,但不要随意添加更多单引号。