Ansible如何通过extra_vars使用with_dict?

时间:2020-02-14 08:50:19

标签: variables ansible

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中获取相应的数据。

谢谢,祝你有美好的一天!

1 个答案:

答案 0 :(得分:0)

问题是"{{ dep }}"的计算结果为字符串"rd1"

with_dict: "{{ dep }}"

这是错误"with_dict expects a dict"的原因。

相反,您需要lookupvars插件。例如

with_dict: "{{ lookup('vars', dep) }}"
相关问题