gpt4 book ai didi

vagrant - Vagrant 中的单独的可配置资源手册

转载 作者:行者123 更新时间:2023-12-04 13:26:37 26 4
gpt4 key购买 nike

我正在使用vagrant和ansible来配置虚拟机,并且工作正常。这个可笑的剧本克隆了一个git repo,安装了它并运行了一个服务守护进程。

我还希望有一个无所事事的命令,该命令执行一个单独的“更新”剧本,该剧本从git repo中提取最新的剧本,并安装并重新启动该守护程序。

像这样的用法会很好。

Vagrant.configure("2") do |config|

# Default
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yml"
end

# Update
config.vm.provision "ansible", name="update" do |ansible|
ansible.playbook = "update.yml"
end
end

然后,我可以使用 vagrant --provision-with update运行它。这样的事情可能吗?我想避免不得不进入框来运行这样的更新。

最佳答案

我不确定为什么要删除此人的答案,因为它是正确的。从 Vagrant 1.7.0开始,您可以name provisions

以下工作:

Vagrant.configure("2") do |config|

# Default
config.vm.provision "main", type: "ansible" do |ansible|
ansible.playbook = "playbook.yml"
end

# Update
config.vm.provision "update", type: "ansible" do |ansible|
ansible.playbook = "update.yml"
end
end

您可以使用 vagrant provision --provision-with <foo>然后执行其中之一。

但是,如果执行 vagrant up,则所有预配器都将运行,这是不希望的。作为解决方案,我先运行 vagrant up --no-provision,然后运行 vagrant provision --provision-with main作为默认文件,并将其放入Makefile中。

关于vagrant - Vagrant 中的单独的可配置资源手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32241279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com