Ansible:使用动态库存从子网获取主机名

时间:2016-12-13 09:19:32

标签: ansible ansible-playbook subnet

我需要在同一子网上的某些主机上运行一个ansible playbook。

但是,我不知道主机名是什么,因为它们总是在变化,但子网将保持不变。

有没有办法使用动态广告资源查找给定子网上的所有主机?

提前致谢!

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案可能是

nmap -n -sn 172.17.0.0/24 -oG - | awk '/Up$/{print $2}' > myInventory && ansible -i myInventory all -m ping

要获得更优雅的解决方案,请查看Dynamic InventoryDeveloping Dynamic Inventory Sources

答案 1 :(得分:2)

根据Vagrant文​​件。它已经生成了适合Ansible的动态库存。

有关Vagrant的文档包含Ansible的此页面:

  

Vagrant将生成一个包含其管理的所有虚拟机的库存文件,并将其用于配置机器。

     

...

     

生成的广告资源文件作为本地Vagrant环境的一部分存储在.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory

使用Ansible和-i选项指定库存应该有效。您可以通过列出主机来测试它:

ansible -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory --list-hosts