Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 如何访问引用哈希中的嵌套变量。_Ansible - Fatal编程技术网

Ansible 如何访问引用哈希中的嵌套变量。

Ansible 如何访问引用哈希中的嵌套变量。,ansible,Ansible,我正在写一本Ansible Playbook,并试图访问引用散列中的嵌套变量 这是我的vars文件: SourceIPs: 192.168.33.20: DestIP: 192.168.33.30 Port: 22 192.168.33.30: DestIP: 192.168.33.20 Port: 22 这是我的任务文件: - name: Testing varibale access. debug: msg: " Source IP: {

我正在写一本Ansible Playbook,并试图访问引用散列中的嵌套变量

这是我的vars文件:

SourceIPs:
  192.168.33.20:
    DestIP: 192.168.33.30
    Port: 22
  192.168.33.30:
    DestIP: 192.168.33.20
    Port: 22
这是我的任务文件:

- name: Testing varibale access.
  debug:
    msg: " Source IP: {{ ansible_host }} corresponding Port IP and Port {{ SourceIPs[' {{ansible_host}} '] }}  "
当执行这个dict_对象没有名为{{ansible_host}的变量时,它会失败。很明显,它并没有将其转换为当前主机的IP地址

但是,如果我修改任务文件以包含静态主机ip,如下所示:

- name: Testing varibale access.
  debug:
    msg: " Source IP: {{ ansible_host }} corresponding Port IP and Port {{ SourceIPs['192.168.33.30'] }}  "
它可以工作并获取特定主机的值


我试图实现的是获取与我当前正在执行的主机关联的值

永远不要在Jinja2表达式中嵌套。您可以在其中使用变量,而无需任何包装:

- name: Testing varibale access.
  debug:
    msg: " Source IP: {{ ansible_host }} corresponding Port IP and Port {{ SourceIPs[ansible_host] }} "