ico*_*ast 3 puppet chef ansible saltstack
一般来说(据我所知)主要的基础设施/配置管理系统(Puppet、Chef、Ansible 和 SaltStack)都基于这样的理念:您的服务器是“牛”而不是“宠物”,而且它们似乎可能与直接对服务器进行配置更改的想法相矛盾。
尽管我曾与 Chef、Puppet 和 Salt 合作过,但始终是从与 Vagrant 合作的开发人员的角度出发,为开发设置单独的盒子,因此我的经验无助于回答这个问题。
问题是:这些系统是否支持直接对服务器进行更改并将其保留一段时间而不必担心本地守护程序会用官方配置覆盖它的用例?您应该能够进行更改(并且最好设置防止覆盖的时间窗口),而无需对(例如)厨师食谱或盐状态进行任何重大更改。此用例的全部目的是避免让五分钟的配置更改因公司摩擦和找到正确(例如)盐状态并确保没有副作用并完成发布/部署的复杂性而陷入困境循环和测试以确保您在此过程中没有发生任何事情。
如果您想要一个更具体的示例,假设您想要调整多个日志的 logrotate 设置,以平衡节省驱动器空间和访问历史数据。您知道在任何给定设置下将保存多少数据,以及您认为需要保留多少数据,但您不能 100% 确定。最好一开始就进行更改,然后看到 (1) 有人抱怨他们需要更多历史数据来执行某些调试任务,或者 (2) 您没有节省预期的驱动器空间,需要节省。
五分钟的更改实际上可以是五分钟的更改,如果您的配置管理系统允许它是一个,然后一旦您确信您希望在所有履行特定角色的盒子上进行这些更改,您可以让Chef/Puppet/Salt/Ansible 会为您管理。
注意:我不是在询问配置管理系统尚未管理某种类型的配置文件的用例,而是询问它已经在管理某种类型的配置文件,但您想要进行本地更改并让它们在给定的机器上优先,并且不被覆盖。
这些系统是否支持我的用例?(不需要我与系统战斗或进行后空翻来使其工作。)
配置管理系统通过在更改期间在目标主机上禁用它们来支持此用例。以 Chef 为例,您可以在节点上禁用 Chef-client。这会导致节点在 Chef 服务器中显示为“过时”,但这是一个有用的提醒,表明该节点不合规,并且应该向前滚动或回滚更改。
对于单个文件,您可以执行 chattr +i,我见过的没有工具知道如何绕过它。
Chef 的一个额外想法——对于文件模板,在原始 Chef 运行之前该文件不存在,您可以告诉 Chef :create_if_missing,这样它只会接触该文件一次。
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |