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=>“始终”吗?我想你错过了引语。