【问题标题】:Chef: How to add changes made via dashboard to Git?Chef:如何将通过仪表板所做的更改添加到 Git?
【发布时间】:2012-12-17 05:00:10
【问题描述】:

我们目前正在设置 opscode chef,我们希望通过 Git 管理所有食谱、环境等。是否有最佳实践/自动化确保通过仪表板进行的所有更改(例如新环境)都自动添加到版本控制中?

【问题讨论】:

  • 这是一个很好的问题,我认为对于如何解决它没有达成共识。
  • 您在与 Hosted Chef 合作吗?还是您有自己的 Chef Server?

标签: git chef-infra


【解决方案1】:

这正是我很少使用 Web 客户端的原因。相反,我有一个 git 存储库,我将我的 JSON 配置保存在存储库中,然后使用knife 及其from file 功能来更新节点、角色、环境和说明书。它让我更容易确保 git 和 chef 是最新的。

如果您必须使用 Web 界面,您可以设置一个 cron 作业以定期通过 Chef REST API 提取数据,然后将任何更改提交到您的 git 存储库。

【讨论】:

  • 但是knife node from file 存在一个问题 - 它会删除所有节点属性(包括 IP),直到您在其上运行 chef-client。
  • 你是对的。但出于我的版本控制目的,这并没有那么大的限制。
【解决方案2】:

我们设计的解决方案(但为了充分披露并没有超出 POC 的范围)是随时观察 couchdb 的变化 (http://guide.couchdb.org/draft/notifications.html)一个文档发生了变化,我们从 couchdb 中提取它并检查到 git 中。

您可以通过持续监听更改来做到这一点,也可以编写脚本并只保留您更新的最后一条记录的指针。这意味着该解决方案对于在 couchdb 中更新文档的客户端是完全不可知的(即,knife/webui/recipes/命令行脚本都最终通过 api 注册其更改并进入 couchdb)

希望对你有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 2014-01-04
    • 2015-05-08
    • 2013-01-27
    • 1970-01-01
    • 2011-11-15
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多