我需要在同一子网上的某些主机上运行一个ansible playbook。
但是,我不知道主机名是什么,因为它们总是在变化,但子网将保持不变。
有没有办法使用动态广告资源查找给定子网上的所有主机?
提前致谢!
答案 0 :(得分:2)
一个简单的解决方案可能是
nmap -n -sn 172.17.0.0/24 -oG - | awk '/Up$/{print $2}' > myInventory && ansible -i myInventory all -m ping
要获得更优雅的解决方案,请查看Dynamic Inventory和Developing 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