Ansible & Vagrant - передайте аргументы в ответ
Один мой колледж написал скрипт для автоматизации установок Vagrant, включающий скрипты Ansible. Так что, если я бегу ansible provision
, playbook ansible/playbooks/provision.yml` запускается на бродячем компьютере (ах).
Недостатком этого скрипта является то, что Ansible playbook будет развертываться только на компьютере с ansible provision
,
Теперь, когда я пишу код и работаю, я замечаю недостатки. Потому что я могу дать ansible-playbook
параметры / аргументы, такие какansible-playbook -i inventory provision.yml -vvv --tags "test"
, Но это невозможно из-за архитектурной проблемы.
Итак, вместо того, чтобы решить реальную проблему (от которой я пытаюсь уклониться), есть ли какие-нибудь гуру, которые могут указать мне правильное руководство, чтобы дать возможность дать убедительные аргументы? Например ansible provision -vvv
,
Я посмотрел на https://www.vagrantup.com/docs/cli/provision.html но без посторонней помощи.
Благодарю.
1 ответ
Не совсем уверен, что я правильно понял, но, возможно, этот конфиг (из одного из моих проектов) в vagrantfile может помочь:
config.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbook.yml"
ansible.limit = 'all'
ansible.tags = 'local'
ansible.sudo = true
ansible.verbose = 'v'
ansible.groups = {
"db" => ["db"],
"app" => ["app"],
"myproject" => ["myproject"],
"fourth" => ["fourth"],
"local:children" => ["db", "app", "myproject", "fourth"]
}
end
В этом Vagrantfile я настроил 4 VM vagrant.
vagrant_ansible_inventory выглядит так:
# Generated by Vagrant
db ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
app ansible_ssh_host=127.0.0.1 ansible_ssh_port=2200 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
myproject ansible_ssh_host=127.0.0.1 ansible_ssh_port=2201 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
fourth ansible_ssh_host=127.0.0.1 ansible_ssh_port=2202 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
[db]
db
[app]
app
[myproject]
myproject
[fourth]
fourth
[local:children]
db
app
myproject
fourth
https://www.vagrantup.com/docs/provisioning/ansible_local.html