问题标签 [chef-attributes]

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 回答
149 浏览

chef-infra - Chef - 动态调用主机特定的环境属性

我是 Chef 和 Ruby 的新手,我已经玩了几天的食谱了。目前,我遇到了一个我认为很简单的问题,但由于缺乏适当的知识,我无法解决它。

我将在 Linux VM 上配置网络接口的 creste chef recipy。

我的 ifcfg-ethX 模板如下所示:

ifcfg-ethX.erb

大多数属性将从环境文件中检索。该文件的结构是:

我的问题是我无法从该环境文件中动态检索网络参数。我当前的 env 文件只定义了 2 个主机,但是会有几十个主机,并且可能会不断添加新主机,所以我必须有一个可以解决这个问题的方法。所有解决方案将不胜感激。

0 投票
2 回答
179 浏览

chef-infra - Chef节点属性定义:通过引用其他字段定义一个字段

如何通过这种方式定义 ruby​​ 哈希?

编辑:上面的代码是厨师食谱的attributes/default.rb

我正在寻找一种方法来定义 Hash 内的 default_interval 并且能够被其他字段引用,以便 default_interval 可以被其他 Chef 方法(例如环境 json)覆盖。

这就是为什么我不选择简单地定义一个全局 default_interval var 的原因。

目前,我使用以下定义来表示 default_interval

空的{}可以被环境json等其他主厨手段覆盖改成{diff: 600, snapshot:86400}

有更好的酷方法吗?

0 投票
1 回答
2475 浏览

chef-infra - 如何使用 Chef 覆盖节点上的属性?

我们有一个 Chef 环境设置。我们的部署工作正常,节点属性被角色和环境正确覆盖。

为了测试即将发生的更改,我们希望更改部署中 1 个特定节点的设置。我们不想为该测试编写不同的配方、角色或环境,因为实际上只有 1 个设置不同。

我尝试通过 Chef Manage 的 Web UI 并将特定节点的属性设置如下:

在我们的食谱中,attributes/default.rb设置如下:

在我们的环境文件中,我们覆盖设置如下:

.erb我们在配方中使用以下模板:

但是,当我们在该节点上运行 chef-client 时,它仍然会http://default-server在输出中结束。

我理解文档中解释的属性优先级。但我不确定如何实现我想要的。

override_attributes()应该在我的环境文件中使用吗?

有没有办法拥有特定于节点的覆盖属性

0 投票
2 回答
144 浏览

chef-infra - Chef : 用另一个属性的值定义一个属性

在我的环境文件中,我定义了一个属性说

['app']['web'] = 'nginx'

并在另一个环境文件中

['app']['web'] = 'apache'

我的目的是创建一个可以在任何环境中运行的配方。在配方中,我定义了一个属性。所以在第一个环境中运行这个配方时,我想定义 node.default['cluster'] ['nginx'] ['endpoint'] 并且在第二个环境中它应该是 node.default['cluster'] ['apache' ] ['端点']

我使用了以下

node.default['cluster'] [node['app']['web']] ['endpoint']

但这不起作用。有什么办法可以做到这一点?

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 投票
1 回答
163 浏览

chef-infra - 使用自定义属性安装多个软件包时出现厨师错误

我正在尝试使用自定义属性使用 Chef 的“包”资源安装多个包。当我尝试:

上面的代码对我来说很好,但是在尝试使用自定义属性时相同的代码会出错。

请看一看-

我的食谱代码:

属性代码:

错误日志:

0 投票
1 回答
17 浏览

shell - 如何从添加到节点运行列表的说明书中获取属性?

我有一本食谱mycookbook,它被添加到节点的运行列表中node_address。现在我想mycookbook从节点中检索 JSON 格式的属性。

在这种情况下,我可以访问该节点,因此我可以在该节点中 ssh 并运行命令。

我还想了解使用哪些刀命令从添加到节点运行列表的说明书中获取 JSON 格式的属性。

0 投票
0 回答
12 浏览

chef-infra - Chef Infra:如何更改节点文件中说明书的默认值?

我正在寻找有关如何更改 tomcat 食谱中指定的默认值的具体说明。我在 node.json 文件中使用这本说明书来创建一个实例,但我想更改我节点的说明书中指定的安装目录的默认路径。

tomcat 食谱属性文件中的默认值,如:default['tomcat']['install_location']='/installation/path'

我需要在我的节点文件中安装 tomcat 的值是:'/user_defined/path'。

任何人都可以帮助我如何实现这一目标。我需要在我的节点文件中使用这些属性来获取这些更改。?