问题标签 [chef-policyfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
377 浏览

artifactory - 无法使用 Policyfile 厨师安装从工件解析食谱

我正在尝试使用 Policyfile 将 Artifactory 存储库配置为食谱的来源。我正在使用手动上传/ curl 将食谱发布到/chefartifactory 中的 repo(这也是新的) - 我无法用炉子发布,现在想避免刀艺术。chef install运行失败。

我不确定上传或厨师安装是否有问题,并且没有从厨师那里获得调试信息。

食谱上传

curl --user "myuser:API_KEY" --data-binary @mycookbook.tar.gz -X PUT https://my-artifactory-server/artifactory/chef/mycookbook.tar.gz 我也尝试将其添加到/chef/mycookbook/mycookbook.tar.gz. 路径或工件名称中没有版本,但元数据是有效的。是否需要版本?

策略文件.rb

我也尝试过使用/artifactory/api/chef/and/artifactory/api/chef/chef作为 URI。ARTIFACTORY_API_KEY 变量设置为我的用户 API 密钥。

从包含策略文件的目录中,我运行chef install -D- 调试信息不​​多,但这是我得到的输出。

已尝试查看 Artifactory 日志以了解可能有什么问题,但看不到太多 - requests.log 显示一个 GET ,/artifactory/api/chef/chef/universe它为正文返回 OK {}- 所以假设菜谱没有被添加到菜谱中某种清单?Artifactory 版本是 5.10。

我尝试添加一个为“厨师”本地存储库提供服务的虚拟存储库并使用它更新策略文件,但得到相同的结果。

0 投票
1 回答
178 浏览

chef-attributes - 如何更改策略组的属性而无需重新编译所有策略文件?

我正在尝试从 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

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

0 投票
0 回答
221 浏览

continuous-integration - 多个 Chef 策略文件

我有一个案例,其中有许多具有不同拓扑的开发环境,这意味着某些节点可以具有多个角色,并且角色集可能因环境而异。

Policyfile 可以映射到某个特定的运行列表,但在我的情况下,我需要在同一个节点上组合多个 Policyfile。

我看到了关于多策略的 RFC,它可能还没有实现https://github.com/chef-boneyard/chef-rfc/blob/master/rfc075-multi-policy.md

如果一个节点的角色集可以变化,Policyfile 工作流程是否良好?如果是,如何实现?

谢谢。

0 投票
2 回答
450 浏览

chef-infra - Chef Policyfile.rb `include_policy` 不保证策略依赖的不变性

假设我在一本名为 Polcyfile.rb 的食谱中有一个motd

和一个recipes/default.rb

我有另一本名为environmentPolicyfile.rb 的食谱:

它有一个空的recipes/default.rbattributes/default.rb

chef install Policyfile.rbenvironmentdir 中运行以生成锁定文件。当我kitchen convergemotddir 然后运行时kitchen login,我将预期的输出输出到控制台:

现在我去更新environment/attributes/default.rb成为

不会再从. chef update Policyfile.rb_ environment_ 我的期望是这不会反映我的更新,因为尚未更新其包含的政策。但令我惊讶的是,我确实在控制台中看到了更新的消息。我确实看到它有一个新的根并且已经改变了。但是,我仍然认为,在这种情况下,如果我的依赖 Policyfile.rb 中的食谱发生了变化并且不计算以匹配其 Policyfile.lock.json 的哈希,那么我仍然应该看到旧的输出或者应该有这里有某种其他警告。kitchen convergemotdkitchen loginPolicyfile.lock.jsonmotdrevision_idenvironmentPolicyfile.lock.jsonrevision_idcookbook_locks->environment->identifierrevision_id

我想我只是想更全面地理解这里的概念。一方面,根revision_idmotd改变了,所以我在某种意义上实现了幂等性。但另一方面,revision_idforenvironment依赖项及其组件说明书不匹配。有人可以解释为什么这是有道理的吗?