2016-12-13 2 views
0

Мне нужно запустить загружаемую книгу на некоторых хостах в одной и той же подсети.Ansible: используйте Dynamic Inventory для получения имен хостов из подсети

Однако, я не знаю, что такое имена хостов, поскольку они всегда меняются, однако подсеть останется прежней.

Есть ли способ использовать динамический инвентарь, чтобы найти все хосты в данной подсети?

Заранее благодарен!

+0

Да, это возможно. Какую платформу вы используете для своего хостинга? например AWS, Vagrant и т. Д. –

+0

Я использую Vagrant –

ответ

2

Согласно документации Vagrant. Он уже создает динамический инвентарь, подходящий для Ansible.

Документация по Vagrant включает эту страницу для Ansible:

Vagrant будет генерировать файл инвентаризации, охватывающую все виртуальные машины, которыми он управляет, и использовать его для инициализации машины.

...

сгенерированный файл инвентаризации хранится как часть локальной среды Бродячей в .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory

Использование анзибль с -i возможностью указать кадастр должен работать. Вы можете проверить его, указав хозяев:

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

Спасибо. Это именно то, что мне нужно! –

1

тривиальное решение может быть

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 и

+0

Спасибо за это. Я использовал это для создания моего инвентарного файла для тестирования с помощью Vagrant для проверки правильности выбора машин. –

Смежные вопросы