Vagrant “有条件地”提供(“流浪规定”);“流浪者上”;

Vagrant “有条件地”提供(“流浪规定”);“流浪者上”;,vagrant,chef-infra,chef-solo,Vagrant,Chef Infra,Chef Solo,由于我在一个团队中工作,我希望与流浪汉(和厨师索洛)一起工作的过程尽可能顺利。 当团队中有人更改厨师烹饪书、角色或其他任何东西时,我希望所有其他团队成员在下一次“流浪者行动”时通过进行流浪者重新调配(如运行“流浪者调配”)自动“接收”更改,而无需每个团队成员都知道并手动重新调配 我想通过让git post接收钩子脚本触摸根项目文件夹上的文件来实现这一点。然后,当调用“vagrant up”时,它将检查该文件是否存在。如果文件存在-一旦“启动”完成运行,它将重新配置 有更好的选择吗?怎么做? 如果

由于我在一个团队中工作,我希望与流浪汉(和厨师索洛)一起工作的过程尽可能顺利。
当团队中有人更改厨师烹饪书、角色或其他任何东西时,我希望所有其他团队成员在下一次“流浪者行动”时通过进行流浪者重新调配(如运行“流浪者调配”)自动“接收”更改,而无需每个团队成员都知道并手动重新调配

我想通过让git post接收钩子脚本触摸根项目文件夹上的文件来实现这一点。然后,当调用“vagrant up”时,它将检查该文件是否存在。如果文件存在-一旦“启动”完成运行,它将重新配置

有更好的选择吗?怎么做?
如果没有,我怎么做


我知道这个问题()是存在的,但这并不完全是我的情况(我特别感兴趣的是资源调配,而不是virtualbox机器本身-box等等)。

您可以在
Vagrant文件的顶部添加如下内容:

# On vagrant up check that we have the latest repo changes if ARGV[0] == "up" && ARGV.join(" ") != "up --no-provision" gs = `git status` # command to check repo status gs.scan(/.*Your branch is behind.*/m) { |mtch| # check for out of date message puts "Your Vagrant files are out of date... fetching..." `git pull origin master` # command to fetch newest files. exec "vagrant up --no-provision;vagrant provision" # Re-run vagrant up and provision } end #在流浪者上检查我们是否有最新的回购变更 如果ARGV[0]=“向上”&&ARGV.join(“”)=“向上--无准备金” gs=`git status`#用于检查回购状态的命令 gs.scan(/.*您的分支在后面。*/m){| mtch |#检查过期消息 放“你的流浪者文件已经过时…正在获取…” `git pull origin master`#命令获取最新文件。 执行官“流浪者上升——无准备金;流浪者准备金”#重新运行流浪者上升和准备金 } 结束
假设您使用Git来存储所有的流浪汉文件和烹饪书等,这应该运行Git状态(可能还需要获取),并检查消息中是否有文件过期的提示。。。如果它们已过期,它将提取最新的文件,然后在运行
vagrant provision
之前,使用
--无规定重新运行
vagrant up
,以重新设置服务器。

vagrant支持通过添加
:run=>“always”来添加在每个
vagrant up
上运行的规定程序
到供应行

您可以添加一个provisioner,用于检查是否需要进行任何更改,然后运行这些更改。(或者,如果更改是可重复的,则每次只运行它们)


“始终运行”在这里有文档记录:

正确的语法不是:Run=>“始终”吗?我想你错过了引语。