Ansible-如何从传递给额外变量的列表中的字典中获取值

时间:2020-11-02 18:04:49

标签: dictionary ansible

所以这是我的难题...我要求用户通过Extra-vars(-e“ dc = canada” -e“输入数据库的名称(即dbx)和位置(加拿大或美国)。 dbname = dbx”。从那开始,我要阅读vars

  vars:
    dbx:
      canada:
        dbu: db1
        home: /u01/app/oracle
      america:
        dbu: db2
        home: /u01/app/oracle

获取dbu。然后将dbu与主机上运行的数据库进行比较

- name: see if db is running on this host
  command: echo database is running here
  when: dbu == item.database_name
  with_items: 
    - "{{custom python module}}"

如果我输入,我就能得到价值

- name: output
  register: x
  debug:
    msg: "{{ dbx[dc].dbu }}"

但是,如果我将dbx更改为dbname的值,则会出错。

希望如此。

1 个答案:

答案 0 :(得分:0)

感谢Zeitounator和lxop。

通过添加另一个嵌套循环信息:

我能够通过您的建议得到结果:

{{ info[g_db][dc].dbu }}