如何在ansible中使用单个主机上的资源清册数据

如何在ansible中使用单个主机上的资源清册数据,ansible,ansible-inventory,Ansible,Ansible Inventory,我从netbox插件动态获取ansible的网络资源清册,我想使用这些数据编辑/etc/hosts文件,并在一个特殊主机(librenms)上运行脚本,将所有网络设备添加到那里 有人知道如何仅在librenms主机上使用netbox清单插件的数据运行playbook吗 这里是我的清单(librenms主机不在其中) 非常非常感谢 如果要在其上运行playbook的主机不是动态资源清册的一部分,同时要在该主机的播放中使用动态资源清册中定义的变量,则必须构建一个包含动态资源清册和其他静态条目的“混合

我从
netbox
插件动态获取
ansible
的网络资源清册,我想使用这些数据编辑/etc/hosts文件,并在一个特殊主机(librenms)上运行脚本,将所有网络设备添加到那里

有人知道如何仅在librenms主机上使用netbox清单插件的数据运行playbook吗

这里是我的清单(librenms主机不在其中)


非常非常感谢

如果要在其上运行playbook的主机不是动态资源清册的一部分,同时要在该主机的播放中使用动态资源清册中定义的变量,则必须构建一个包含动态资源清册和其他静态条目的“混合”资源清册

这在有关库存的文档中有说明:

基本上有两种解决方案:

  • 在命令行上使用两种不同的资源清册:
    ansible playbook-i dynamic\u inventory-i static\u inventory your\u playbook.yml
    
  • 在目录中创建具有不同来源的复合资源清册。请参阅上述文档中的“使用目录聚合库存源”一章

您可以将您的剧本定位于
主机:librenms
,或者使用
-l librenms
选项将更广泛的剧本限制在该主机上。但是非常基本的=>
ansible playbook-i your inventory[-l librenms]your_playbook.yml
Hi Zeitounator,谢谢你的回答。问题是,librenms主机不是动态资源清册的一部分。这些只是开关。我得到以下错误:
错误!指定的主机和/或--limit与任何主机都不匹配
plugin: netbox
api_endpoint: https://netbox.mydomain.com
token: abcdefghijklmopqrstuvwxyz
validate_certs: False
config_context: True
group_by:
  - device_roles
query_filters:
  - role: test-switch
  - has_primary_ip: True