0

从 2.8.x 开始,我需要一些关于使用带有 ansible 版本的 consul_kv 模块的帮助,也许我错过了一些东西,但是我查看了模块的代码,我并没有真正看到 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 ,从那些较新的版本中我需要在使用查找的每一行上指定主机和端口

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

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

4

1 回答 1

1

精美的手册说,查找现在使用$ANSIBLE_CONSUL_URL环境变量来确定协议、主机名和端口——或者(如您所见)使用查找函数的内联 kwargs。你提到的那些group_vars似乎不再被咨询

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

于 2020-02-28T04:12:15.240 回答