ansible - 如何遍历主机名不同的变量列表
问题描述
所以我想要做的是在一个单独的文件中有变量,如下所示:
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"
解决方案
这里是你需要的,
tasks:
- name: Netcat
shell: "nc -vz {{ vars[inventory_hostname + '_server'] }} 443"
timeout: 5
register: netcat_results
推荐阅读
- scala - scala.collection.Map[Int, T] 的函子
- python - 了解 torch.nn.Flatten
- c# - 错误 CS0103:当前上下文中不存在该名称;系统无法识别我的列表
- c++ - makefile 规则中的 % 是什么意思
- google-bigquery - JSON 类型的列是否已弃用?
- flutter - 我的颤振应用程序“列表”中出现错误
' 不是类型 'Map 的子类型 ' - c# - 有什么方法可以直接从命令行查看可用于 Visual Studio 的 Nuget 包源
- node.js - 向 ROBLOX API 发送 https 请求时出错
- python - 对列执行多个条件
- html - 具有颜色范围的 CSS 条件格式