首页 > 解决方案 > 如何遍历主机名不同的变量列表

问题描述

所以我想要做的是在一个单独的文件中有变量,如下所示:

Pretend_server: "1.1.1.1"
Real_server: "8.8.8.8"
Bigdog_server: "139.130.4.5"

给他们打电话:

vars:
  favcolor: blue
vars_files:
- ./external_vars.yml

然后从 inventory_hostname + _server 到 netcat

  tasks:
  - name: Netcat
    shell: "nc -vz {{ inventory_hostname + '_server' }} 443"
    timeout: 5 
    register: netcat_results

因此,当脚本在主机名为“Bigdog”的库存项目上运行时,它会将 _server 附加到变量并引用外部变量文件中的变量。

但是它在输出中这样做:

fatal: [cloudguru1]: FAILED! => {"changed": true, "cmd": "nc -vz Bigdog_server 443"

标签: ansibleansible-2.x

解决方案


这里是你需要的,

tasks:
  - name: Netcat
    shell: "nc -vz {{ vars[inventory_hostname + '_server'] }} 443"
    timeout: 5 
    register: netcat_results

推荐阅读