Ответ 1
Удалите .ini
из ваших имен файлов:
$ ls test/
hosts1 hosts2
$ ansible -i test --list-hosts all
test1
test2
test3
test5
test6
test4
Я пытаюсь использовать несколько файлов инвентаря и динамические ресурсы с помощью Ansible 1.4 и dev. Ansible возвращает Нет хостов, сопоставленных.
У меня есть симулированный сценарий с двумя файлами hosts в тестовом каталоге, в котором указано содержимое каталога.
hosts1.ini
[group1]
test1 ansible_ssh_host=127.0.0.1
test2 ansible_ssh_host=127.0.0.2
[group2]
test3 ansible_ssh_host=127.0.0.3
hosts2.ini
[group3]
test4 ansible_ssh_host=127.0.0.4
[group4]
test5 ansible_ssh_host=127.0.0.4
test6 ansible_ssh_host=127.0.0.5
если я запустил ansible -i test -list-hosts, все, что он возвращает Нет хостов, сопоставленных.
Я выкопал код и нашел dir.py с небольшим исправлением, и я получил его тоже. Но я думаю, что я, должно быть, сделал что-то не так, а хак не нужен. Любые идеи о том, как его решить?
Удалите .ini
из ваших имен файлов:
$ ls test/
hosts1 hosts2
$ ansible -i test --list-hosts all
test1
test2
test3
test5
test6
test4
Инвентарь как папка
В папке ваших плейбуков создайте папку под названием инвентарь.
mkdir inventory
Теперь переместите текущий файл инвентаризации (часто называемый хостами) в эту папку
mv hosts inventory
Чтобы показать возможность использования нового инвентаря, есть 2 варианта:
Использование ansible.cfg
Создайте файл ansible.cfg в той же папке, что и ваши плейеры, и добавьте строки:
[defaults]
hostfile = inventory
Аргумент командной строки
При следующем запуске вашей пьесы просто добавьте -i inventory
:
ansible-playbook -i inventory my_playbook.yml