从2.8.x开始,我需要在ansible版本中使用consul_kv模块,也许我遗漏了一些东西,但是我看了一下模块的代码,我不太可能看到2.7.x和2.8.x之间的变化,这些变化可以解决我遇到的问题。
使用ansible 2.7.x时,当我试图从领事那里获得值时,我从env获得领事主机、端口、路径,并执行如下代码:
# 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中的env与此模块?
发布于 2020-02-28 04:12:15
精细手册说,查找现在使用$ANSIBLE_CONSUL_URL环境变量来确定协议、主机名和端口--或者(正如您观察到的)使用查找函数的内联kwargs。你提到的那些group_vars似乎不再被咨询了
您还需要小心,因为您的group_vars/all (至少在这个问题中,不知道您是否真的在做)在consul_path :中有一个尾随空间,它创建了一个名为consul_path<space>的变量
https://stackoverflow.com/questions/60436411
复制相似问题