【问题标题】:need clarification regarding the management of nodes, roles within Chef需要澄清有关节点管理、Chef 中的角色
【发布时间】:2019-01-03 17:54:16
【问题描述】:

我已经阅读了很多关于厨师的文档,从食谱到角色以及刀具工具的使用。我对运行配方感到满意,并使用角色将它们与节点相关联。我不满意的方面是 UI 和节点、角色等的内部管理。请注意,我来自 Ansible,其中每个配置都可以在 repo 中进行版本控制,例如 git。

  • 如何在 UI 中跟踪节点等的变化 - 是否有审计工具可以让我们看到随着时间的推移发生了什么变化?我在网上搜索了一个演示,但发现的信息很少。
  • 是否可以同步厨师服务器和一个说 git 存储库,所以至少可以在那里看到节点、角色等定义的变化?在 ansible 中,我可以在配置文件中保持我的期望并让工具导入它。有没有办法做类似的事情?我读到了“基础设施即代码”,但它不是违背了这里的目的,即这段代码不能轻易地进行版本控制吗?

【问题讨论】:

    标签: chef-infra inventory recipe


    【解决方案1】:

    让我试着澄清一下……

    • 如何在 UI 中跟踪节点等的变化 - 是否有审计工具可以让我们看到随着时间的推移发生了什么变化?我在网上搜索了一个演示,但没有找到任何信息。

    有很多方法可以收敛一个节点(运行你的配方),一旦收敛完成,节点属性就会被存储。它们的存储位置取决于您如何聚合节点:

    • 服务器\客户端架构:节点属性将存储在 Chef 服务器上
    • 零\本地模式架构:节点属性将存储在本地的json文件中

    如果你配置了knife correctly(参见client.rb),你就可以使用knife 来检索节点属性。 for instance:

    $ knife search "name:node.example.com" --long
    
    • 是否可以同步厨师服务器和一个说 git 存储库,所以至少可以在那里看到节点、角色等定义的变化?在 ansible 中,我可以在配置文件中保持我的期望并让工具导入它。有没有办法做类似的事情?我读到了“基础设施即代码”,但它不是违背了这里的目的,即这段代码不能轻易地进行版本控制吗?

    当然可以。只需将您所有的食谱置于源代码控制管理之下。 如果您使用服务器\客户端架构,则在完成说明书开发和测试后,upload your cookbooks to chef-server 然后在感兴趣的节点上运行 chef-client。

    【讨论】:

    • 感谢您的澄清。这很有帮助。
    【解决方案2】:

    由于我不熟悉 Chef 的 UI,所以我将尝试简要回答您的第二个问题。

    你有两个选择:

    1. 如果您想坚持角色,可以关注Policyfile model/pattern。
    2. 您可以放弃角色。您可以切换到包装食谱模式,将食谱视为角色。例如,您创建元(包装器)食谱 web_server 而不是 web_server 角色,您只需在其中包含其他食谱或设置属性。您可以像任何其他食谱一样对包装器食谱进行版本控制。对于节点,您只分配包装器说明书,或者每个节点类型只有一个包装器说明书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多