检测Vagrantfile中的git分支,并使用它来控制VM配置脚本,仅托管网络IP地址等



我的公司有一个特殊的情况,我们有一个巨大的git存储库,其中包含我们所有的代码。

短期内将代码分成库和模块是非常困难的。

但是我们希望根据代码应该扮演的角色"生成"服务器,例如网站、soap Web 服务、rest Web 服务等。

一个想法是使用 git 分支来发出变化信号。代码将基本相同,但控制服务器行为的配置文件将不同。

我把它写到我们的 bash 配置脚本中,它可以工作。

我现在正在寻找流浪汉是否支持这样的计划。

谢谢。

您必须自己实现切换逻辑,但它应该相当简单。

在某个地方(可能在configure块之前),您需要弄清楚当前分支是什么:

branch = `git rev-parse --abbrev-ref HEAD`

然后,在盒子定义中根据需要使用它。例如,您可以根据分支切换配置器:

# snip
shell_provisioner = case branch
                    when 'master'  then 'path/to/provisioner.sh'
                    when 'widgets' then 'path/to/widgets.sh'
end
config.vm.provision :shell, path: shell_provisioner

这是无限灵活的,并且取决于您实际想要根据分支而变化的内容。如果需要,我很乐意扩展它。

最新更新