我需要从2.8.x版本开始使用consul_kv模块和ansible版本的帮助,也许我错过了一些东西,但是我看了一下模块的代码,但我并没有真正看到2.7.x和2.8.x之间的变化。可以解决我遇到的问题。
使用ansible 2.7.x时,当我尝试从consul获取价值时,我从conv vars获得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中继续使用env var?
The fine manual表示,查找现在使用$ANSIBLE_CONSUL_URL
环境变量来确定协议,主机名和端口-或(如您所观察到的)使用对查找功能的内联kwarg。您提到的那些group_vars
似乎已不再被使用
[您还需要注意,因为您的group_vars/all
(至少在此问题中,如果您确实在做,未知)在consul_path :
中具有尾随空格,这会创建一个名为consul_path<space>
的变量