0

我正在尝试从 Chef 中的环境文件转移到使用 Policyfiles。https://docs.chef.io/policy.html。我真的很喜欢这个概念,特别是因为您可以将策略中的策略包含到另一个策略中,但我试图了解如何进行简单的属性更改。

例如,如果我想更改一个全局使用的属性,该属性可能是当前正在发生的问题的错误消息。(“系统将关闭 10 分钟。感谢您的耐心等待”)。或者,也许我想关闭一些带有作为标志的属性的 AB 测试。据我所知,我能做到这一点的唯一方法是更改​​策略文件中的一个属性,然后我需要创建一个新版本的策略文件。

如果策略文件包含在许多其他策略文件中,例如基本策略文件,那么我需要做很多工作来进行简单的更改。

default['production']['maintenance_message'] = 'We will be down for the next 15 minutes!'

default['production']['start_new_feature'] = true

如何对影响整个策略组的属性进行简单更改?有没有一种简单的方法来更改属性,或者我必须将所有环境属性移动到数据包中?

4

1 回答 1

0

好的,我使用了 Chef Support 并得到了答案:

这是他们的回应:

“你已经提到了我们建议人们使用 Jenkins 管道之类的东西来向他们的基础架构交付食谱的主要原因之一。所有这些工作都可以通过构建系统来启动,该系统识别依赖项的变化并为所有人启动新的构建下游消费岗位。

对于它的价值,我真的不喜欢像你在配置管理中使用的维护消息示例那样放置应用程序配置,我认为像 Habitat 这样的系统对于这种快速更改的配置交付来说是一个更好的系统,尽管你也可以关闭在 Hashicorp Vault、Consul 或 etcd 等系统中存储应用程序配置的路径,并确保任何需要摄取这些更改的应用程序都能够这样做,而无需配置管理与键值配置存储发生冲突。

如果这只是一个说明问题的示例,请忽略前面的评论,仅参考我的建议,即使用管道将说明书、属性等传送到您的基础设施(这些天我通常建议不要使用数据包,但这主要是一种偏好事物)。”

于 2019-10-24T16:46:51.257 回答