ansible 使用 consul_kv 的方式在两个版本之间变化

ansible the way to use consul_kv change between two versions

我需要一些帮助来使用 consul_kv 模块和 ansible 版本,因为 2.8.x ,也许我错过了一些东西,但我看了一下模块的代码,但我没有真的看到 2.7.x 和 2.8.x 之间的变化可以解释我遇到的问题。

使用 ansible 2.7.x ,当我尝试从 consul 获取价值时,我从我的环境变量中获取 consul 主机、端口、路径,然后我像这样执行我的代码:

# group_var/all
consul_path: "{{ lookup('env','ANSIBLE_CONSUL_PATH') }}"
consul_host: "{{ lookup('env','ANSIBLE_CONSUL_HOST') }}"
consul_port: "{{ lookup('env', 'ANSIBLE_CONSUL_PORT') }}"
- hosts: localhost

  tasks:
    - name: test ansible 2.8.5 with consul
      debug:
        msg: "{{ lookup('consul_kv', consul_path+'path/to/value' }}"

它在 2.7.0 上工作,我得到了我的价值,但在 2.8.x 上不起作用,从那些较新的版本我需要在使用 lookup[= 的每一行上指定主机和端口14=]

msg: "{{ lookup('consul_kv', 'path/to/value', host='myconsulhost.com', port='80') }}"

有没有办法继续在 ansible 2.8.x 中使用此模块的环境变量?

The fine manual 表示查找现在使用 $ANSIBLE_CONSUL_URL 环境变量来确定协议、主机名和端口——或者(如您观察到的那样)使用内联 kwargs 查找函数。您提到的那些group_vars似乎不​​再被咨询

您还需要小心,因为您的 group_vars/all(至少在这个问题中,不知道您是否真的这样做了)在 consul_path : 中有一个尾随 space创建一个名为 consul_path<space>

的变量