ansible的setup模块看到ansible_facts中有ansible_distribution_version属性,但是在playbook中ansible_facts["ansible_distribution_version"] 找不到属性,ansible_facts["distribution_version"] 这样才可以,难道都要去掉setup中ansible_
在 Ansible 的 setup 模块收集的事实(facts)中,所有键值对默认都会添加 ansible_ 前缀(例如 ansible_distribution_version)。但在 Playbook 中通过 ansible_facts 字典访问时,需要省略 ansible_ 前缀,直接使用短名称(例如 distribution_version)。这是 Ansible 的设计行为 命名空间优化:
setup 模块返回的原始数据包含 ansible_ 前缀(用于避免与其他变量冲突)。
当事实注入 Playbook 变量时,Ansible 自动去除前缀,使变量名更简洁。
访问时需使用短名称(如 ansible_facts['distribution_version'])。
在 Ansible 的 setup 模块收集的事实(facts)中,所有键值对默认都会添加 ansible_ 前缀(例如 ansible_distribution_version)。但在 Playbook 中通过 ansible_facts 字典访问时,需要省略 ansible_ 前缀,直接使用短名称(例如 distribution_version)。这是 Ansible 的设计行为
命名空间优化:
setup 模块返回的原始数据包含 ansible_ 前缀(用于避免与其他变量冲突)。
当事实注入 Playbook 变量时,Ansible 自动去除前缀,使变量名更简洁。
访问时需使用短名称(如 ansible_facts['distribution_version'])。
– _java_python 3个月前