ansible - /etc/ansible/hosts 变量的未定义变量错误
问题描述
我有两个虚拟机,一个作为 ansible 控制机器并运行剧本以在第二个虚拟机上执行操作。
以下是ansible控制机器上的文件
/etc/ansible/ansible.cfg
inventory = /etc/ansible/hosts
/etc/ansible/主机
# My nodes
[my-group]
my1-node ansible_user=imran DB_SERVER=10.136.10.49 DB_USER=mydbusr
我尝试了以下两种访问变量的方法,但没有成功,但是如果我提供像 -e DB_SERVER=10.136.10.49 这样的命令行。它的工作
我的剧本
---
- hosts: all
tasks:
- debug:
msg:
- "Database server {{DB_SERVER}}"
- "Database Username {{ hostvars['DB_USER'] }}"
以上是产生错误
更新:我也运行冗长,它说它指向正确的配置,因为我读到由于流浪汉有时配置没有正确指向。
Using /etc/ansible/ansible.cfg as config file
解决方案
如果你想使用hostvars
魔法变量数组,你应该使用下面的语法:
---
- hosts: all
tasks:
- debug:
msg:
- "Database server {{DB_SERVER}}"
- "Database Username {{ hostvars[inventory_hostname]['DB_USER'] }}"
{{DB_SERVER}}
应该可以工作,ansible 知道如何将其解析为您在清单文件中定义的值。
希望能帮助到你。
推荐阅读
- node.js - 尝试安装节点模块时如何忽略节点不支持的引擎?
- r - 从哪里获得 R 语言的印度官方印度政府地图?
- java - 使用 Apache Commons 时遇到错误“java.lang.NoClassDefFoundError”
- javascript - 打字稿,将对象转换为另一种类型,同时在输出类型中保留其键
- android-ndk - 使用参数执行进程 C:\...\ndk-r19c\ndk\ndk-build.cmd 时出错
- reactjs - 对选择选项应用 onChange 效果
- cloud - 在给定的 Windows 应用程序上创建 SaaS
- xslt - XSLT - 为多值添加一层
- python - 我如何在 google colab 的 phton 中读取 .bdf 文件
- javascript - 使用 React 下载到 PDF 或预览并保存到 PDF/打印