Ansible & Vagrant - 将 args 赋予 ansible provision
Ansible & Vagrant - give args to ansible provision
我的一个大学生写了一个脚本来自动化 Vagrant 安装,包括 Ansible 脚本。因此,如果我 运行 ansible provision
,剧本 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 但没有帮助。
谢谢。
不完全确定我是否理解正确,但也许 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
我的一个大学生写了一个脚本来自动化 Vagrant 安装,包括 Ansible 脚本。因此,如果我 运行 ansible provision
,剧本 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 但没有帮助。
谢谢。
不完全确定我是否理解正确,但也许 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