Упаковщик + ответ, как указать файл инвентаря

Когда я использую vagrant, я могу указать файл инвентаря в Vagrantfile.

Пример:

config.vm.provision "ansible" do |ansible|
    ansible.playbook = "my_folder/playbook.yml"
    ansible.inventory_path = "my_folder/inventory_file"
end

Как я могу настроить файл_инвентаризации при использовании упаковщика?

Я не вижу никакой связанной информации в официальной документации упаковщика:

http://www.packer.io/docs/provisioners/ansible-local.html

Мне нужно указать файл инвентаризации, потому что, когда я запускаю свой packer.json, это вывод:

digitalocean: Executing Ansible: ansible-playbook /tmp/my_folder/playbook.yml -c local -i "127.0.0.1,"
digitalocean:
digitalocean: PLAY [foo] ******************************************************************
digitalocean: skipping: no hosts matched

Упаковщик, похоже, использует файл инвентаризации с именем "127.0.0.1", и я не знаю почему.

Как я могу указать свой файл инвентаря?

Спасибо!

2 ответа

Решение

Ну, я думаю, что так как ANSible с пакером использует локальное соединение (-c local), нет необходимости предоставлять файл инвентаризации.

Вы просто должны убедиться, что в вашей книге -hosts строка (и) содержит all или же 127.0.0.1 и это должно работать нормально.

Настройка hosts: all хорошо, если playbook используется исключительно для вашей сборки Packer.

Если вы повторно используете playbook, который также должен работать с хостами, указанными в файле инвентаря, например:

[web_servers]
web1.example.com
web2.example.com

[db_servers]
db.example.com

... тогда вы можете добавить inventory_groups приписать к вашему ansible-local поставщик, и Packer назначит localhost для этих групп:

"provisioners": [ 
  { "type": "file", "source": "my_folder", "destination": "/tmp/" }, 
  { "type": "shell", "script": "provisioner.sh" }, 
  { 
    "type": "ansible-local", 
    "staging_directory": "/tmp/my_folder",
    "playbook_file": "my_folder/playbook.yml",
    "inventory_groups": "web_servers"
  }
]

Для получения дополнительной информации см. Дополнительный подраздел документа Packer для справочника по настройке ansible-local Prover.

Другие вопросы по тегам