extra_vars如何使用with_dict?
我尝试我什么都知道,但是所有输出with_dict都希望有一个dict:(
这是所有文件
# vars.yml
rd1:
Terry:
user_name:terry_liu
user_birth:1994/05/11
Cary:
user_name:cary_lin
user_birth:1992/02/19
rd6:
Jessie:
user_name:jessie_chen
user_birth:1996/11/20
Sherry:
user_name:sherry_hsu
user_birth:1989/07/23
-
# test.yml
- name: demo
hosts: test
vars_files:
- vars.yml
tasks:
- name: show data
debug:
msg: "{{ item }}"
with_dict: "{{ dep }}"
-
#command
ansible-playbook -i inventory test.yml --extra-vars 'dep=rd1'
-
库存的主机是我的测试虚拟机,只有一个IP,它可以是ssh。
运行命令时,输出:致命:[172.16.1.227]:失败! => {“ msg”:“ with_dict需要一个字典”}
我认为var中需要var,但是我尝试了许多不同的方法,但都失败了。
我的要求是发送一个float dep var并从vars.yml中获取相应的数据。
谢谢,祝你有美好的一天!
答案 0 :(得分:0)
问题是"{{ dep }}"
的计算结果为字符串"rd1"
with_dict: "{{ dep }}"
这是错误"with_dict expects a dict"
的原因。
相反,您需要lookup
和vars
插件。例如
with_dict: "{{ lookup('vars', dep) }}"