Ответ 1
Пока Ansible будет пытаться /etc/ansible/hosts
по умолчанию, есть несколько способов сказать, где искать альтернативный файл инвентаря:
- используйте переключатель командной строки
-i
и передайте путь к файлу вашего ресурса. - добавьте
hostfile = path_to_hostfile
в раздел[defaults]
конфигурационного файла~/.ansible.cfg
- используйте
export ANSIBLE_HOSTS=path_to_hostfile
, как предложил DomaNitro в его ответе
Теперь вы не упоминаете, хотите ли вы использовать доступный запасник, доступный в бродяжничестве, или если вы хотите вручную разместить свой бродячий хозяин.
Вначале отбросьте необходимое условие для бродяг:
Создайте каталог (например, test) и создайте файл Vagrant внутри:
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "precise64-v1.2"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.define :webapp do |webapp|
webapp.vm.hostname = "webapp.local"
webapp.vm.network :private_network, ip: "192.168.123.2"
webapp.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", 200, "--name", "vagrant-docs", "--natdnshostresolver1", "on"]
end
end
#
# Provisionning
#
config.vm.provision :ansible do |ansible|
ansible.playbook = "provision.yml"
ansible.inventory_path = "hosts"
ansible.sudo = true
#
# Use anible.tags if you want to restrict what `vagrant provision`
# Here is a list of possible tags
# ansible.tags = "foo bar"
#
# Use ansible.verbose to see detailled output for ansible runs
# ansible.verbose = 'vvv'
#
# Customize your stuff here
ansible.extra_vars = {
some_var: 42,
foo: "bar",
}
end
end
Теперь, когда вы запустите vagrant up
(или vagrant provision
), Vangrant ansible provionner будет искать имя файла hosts
в том же каталоге, что и Vagrantfile, и попытается применить playbook provision.yml
.
Вы также можете запустить его вручную, не прибегая к незаменимому помощнику Vagrant:
ansible-playbook -i hosts provision.yml --ask-pass --sudo
Обратите внимание, что трюк Vagrant + Virtualbox + Ansible не всегда хорошо ладит. Есть несколько комбинаций версий, которые являются проблематичными. Попытайтесь обновить до версии latests, если у вас возникли проблемы (особенно в отношении сети).
{shameless_plug} Вы можете найти более обширный пример смешивания бродяг и несуществующих здесь {/shameless_plug}
Удачи!