首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >r10k:正确地将工作流与git合并

r10k:正确地将工作流与git合并
EN

Server Fault用户
提问于 2016-07-07 08:35:57
回答 2查看 654关注 0票数 4

我目前正在运行木偶在无母模式。我正在使用r10k进行模块和环境部署。

简化版本: r10k控制库有两个分支:测试和生产。生产中的更改将自动分发到生产服务器。某些暂存服务器的测试更改。

现在,如果我在测试中更改内容,我有时也必须更改r10k控件存储库。一个常见的例子是Puppetfile,它目前在生产中如下所示:

代码语言:javascript
复制
forge 'forge.puppetlabs.com'

# Forge modules
mod 'puppetlabs/stdlib'
mod 'puppetlabs/concat'
mod 'saz/ssh'

# Custom modules
mod 'ownmodule1',
        :git => 'https://git.example.org/configuration/ownmodule1.git',
        :ref => 'production'
mod 'ownmodule2',
        :git => 'https://git.example.org/configuration/ownmodule2.git',
        :ref => 'production'

自定义模块的配置在测试分支上可能如下所示:

代码语言:javascript
复制
mod 'ownmodule1',
        :git => 'https://git.example.org/configuration/ownmodule1.git',
        :ref => 'testing'
mod 'ownmodule2',
        :git => 'https://git.example.org/configuration/ownmodule2.git',
        :ref => 'testing'

现在,测试中的提交可能如下所示:

代码语言:javascript
复制
+mod 'ownmodule3,
+        :git => 'https://git.example.org/configuration/ownmodule3.git',
+        :ref => 'testing'

如果我将它合并到生产中,并且不小心,ownmodule3将与测试分支一起添加到生产中,这可能是致命的。当所有测试都成功时,这也会阻止自动合并。

如何修改我的存储库或工作流以防止分支特定更改的意外合并?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-09-26 13:17:55

自r10k 2.4.0以来,可以让傀儡模块与控制存储库中的分支匹配。在分支testing上,我问题中的Puppetfile可能如下所示:

代码语言:javascript
复制
mod 'ownmodule1',
  :git => 'https://git.example.org/configuration/ownmodule1.git',
  :ref => :control_branch

这将导致模块所属模块的分支testing在r10k部署中使用。这相当可靠。使用:default_branch,您可以指定一个回退分支。

票数 1
EN

Server Fault用户

发布于 2016-08-14 20:29:37

Puppetfile中用作参考的硬编码环境名称替换为当前环境名称的变量将有助于使您的Puppetfile可以在分支之间进行合并。

伪码:

代码语言:javascript
复制
mod 'ownmodule1',
  :git => 'https://git.example.org/configuration/ownmodule1.git',
  :ref => ${environment}

对于实际的代码,请参阅这个答案,但我不能保证它在您的设置中会工作,这有点麻烦。

但是,当然,要使您的环境在此更改后正确部署,您必须在模块中创建production分支以及testing,并在它们中加入一些最小的、没有操作但编译新模块的代码。

如果这个答案是有帮助的,并且你决定投它,那么请把链接的答案也向上投。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/788431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档