我正在尝试通过运行来调试我的 ansible 设置
ansible -m debug -a 'var=ansible_distribution' all
Run Code Online (Sandbox Code Playgroud)
但我得到了
my_ansible_host0 | SUCCESS => {
"ansible_distribution": "VARIABLE IS NOT DEFINED!"
}
Run Code Online (Sandbox Code Playgroud)
不过,我似乎可以{{ansible_distribution}}
在我的 jinja 模板中使用。为什么是这样?(例如,这是否与我尚未弄清楚的事实和变量之间的区别有关?)我如何更改我的命令以使其打印出 的值ansible_distribution
?(我需要做点什么吗lookup(...)
?)
lar*_*sks 11
当您运行戏剧时,该ansible_distribution
事实是由模块隐式创建的。setup
您在运行剧本时可能已经注意到这一点:
TASK [Gathering Facts] ****************************************************************
Run Code Online (Sandbox Code Playgroud)
这是 Ansible 运行setup
模块来获取有关远程主机的信息。当您运行临时命令时,没有“收集事实”步骤,因此这些变量不可用。
如果你想查看 和其他变量的值ansible_distribution
,可以手动运行该setup
模块:
ansible -m setup all
Run Code Online (Sandbox Code Playgroud)
您可以使用设置模块的参数来限制收集的事实。例如:
$ ansible localhost -m setup -a 'filter=ansible_dist*'
localhost | SUCCESS => {
"ansible_facts": {
"ansible_distribution": "Fedora",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "31",
"ansible_distribution_release": "",
"ansible_distribution_version": "31"
},
"changed": false
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6797 次 |
最近记录: |