chef-infra - 需要澄清有关节点管理、Chef 中的角色
问题描述
我已经阅读了很多关于厨师的文档,从食谱到角色以及刀具工具的使用。我对运行配方感到满意,并使用角色将它们与节点相关联。我不满意的方面是 UI 和节点、角色等的内部管理。请注意,我来自 Ansible,其中每个配置都可以在 repo 中进行版本控制,例如 git。
- 如何在 UI 中跟踪节点等的变化 - 是否有审计工具可以让我们看到随着时间的推移发生了什么变化?我在网上搜索了一个演示,但发现的信息很少。
- 是否可以同步厨师服务器和一个说 git 存储库,因此至少可以在那里看到节点、角色等定义的变化?在 ansible 中,我可以在配置文件中保持我的期望并让工具导入它。有没有办法做类似的事情?我读过“基础设施即代码”,但它不是违背了这里的目的,即该代码不能轻易地进行版本控制吗?
解决方案
让我试着澄清一下……
- 如何在 UI 中跟踪节点等的变化 - 是否有审计工具可以让我们看到随着时间的推移发生了什么变化?我在网上搜索了一个演示,但发现的信息很少。
有很多方法可以收敛一个节点(运行你的食谱),一旦收敛完成,节点属性就会被存储。它们的存储位置取决于您如何聚合节点:
- 服务器\客户端架构:节点属性将存储在厨师服务器上
- zero\local-mode 架构:节点属性将存储在本地的 json 文件中
如果您正确配置了刀(参见client.rb),您将能够使用刀来检索节点属性。例如:
$ knife search "name:node.example.com" --long
- 是否可以同步厨师服务器和一个说 git 存储库,因此至少可以在那里看到节点、角色等定义的变化?在 ansible 中,我可以在配置文件中保持我的期望并让工具导入它。有没有办法做类似的事情?我读过“基础设施即代码”,但它不是违背了这里的目的,即该代码不能轻易地进行版本控制吗?
当然有可能。只需将您所有的食谱置于源代码控制管理之下。如果您使用服务器\客户端架构,那么在完成食谱开发和测试后,将您的食谱上传到 chef-server,然后在感兴趣的节点上运行 chef-client。
推荐阅读
- facebook-graph-api - 如何以编程方式获取拆分测试的结果?
- javascript - JSX 元素类型“Line”不是 JSX 元素的构造函数
- android - 如何从 initstate 中删除小部件或仅在 initstate 中加载小部件小部件一次?
- google-cloud-platform - RuntimeError:构建自定义图像时出错
- python - 如何在 python 脚本中保护纯文本密码
- jquery - 如何使用 settimeout 在 jquery 中制作 Preloader?
- python - 在 KMeans 算法中获取每个集群中的值的数量
- c# - Outlook VSTO 收件人 MeetingResponseStatus 在接受会议后未更新
- java - 如何在java的I/O流中转换c++的freopen
- rank - 如何计算召回@k