Хотя Ansible попытается использовать /etc/ansible/hosts
по умолчанию, существует несколько способов сообщить ansible, где искать альтернативный файл инвентаризации:
- используйте переключатель командной строки
-i
и укажите путь к файлу инвентаря
- добавьте
inventory = path_to_hostfile
в раздел [defaults]
вашего ~/.ansible.cfg
файла конфигурации
- используйте
export ANSIBLE_HOSTS=path_to_hostfile
, как предложил DomaNitro в его ответе
Теперь вы не упоминаете, хотите ли вы использовать ansible provisionner, доступный в vagrant, или если вы хотите настроить свой бродячий хост вручную.
Давайте сначала перейдем к Vagrant ansible provisionner:
Создайте каталог (например, test) и создайте внутри файл Vagrant:
Бродячий файл:
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
), ansible provionner Vangrant будет искать файл с именем hosts
в том же каталоге, что и Vagrantfile, и попытается применить плейбук provision.yml
.
Вы также можете запустить его вручную, не прибегая к помощи Vagrant'а:
ansible-playbook -i hosts provision.yml --ask-pass --sudo
Обратите внимание, что трио Vagrant+Virtualbox+Ansible не всегда хорошо ладит. Есть некоторые комбинации версий, которые проблематичны. Попробуйте обновиться до последних версий, если у вас возникли проблемы (особенно с сетью).
{shameless_plug} Вы можете найти более подробный пример смешивания vagrant и ansible здесь { /бесстыдный_штекер}
Удачи !
person
leucos
schedule
22.02.2014