问题标签 [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 回答
407 浏览

attributes - Chef 属性如何在内部存储

我知道我们可以在哪里定义厨师属性、属性类型以及它们的优先级。我只想了解它们是如何在内部存储的。

假设我声明了一个属性

1)它是如何在内部存储的?它是在节点对象中的树结构(heirarchy)中使用,还是作为哈希图或节点对象中的变量列表?

2)另外,在大多数食谱中,我看到属性是在 2 或 3 级中声明的,我不明白这是标准还是最佳实践?对于必须声明属性的方式是否有任何指导方针?是否与它的内部存储有关。我不能将属性声明为

并在我的食谱中按以下方式访问它?

0 投票
1 回答
1398 浏览

chef-infra - 厨师属性文件

我有一个厨师食谱,用于创建三个用户,将它们添加到一个组并将它们写入一个 sudoers 文件。

我是 Chef 的新手,我需要一些帮助来为这个食谱编写一个合适的属性文件(/cookbook/User/attributes/default.rb)。我已经尝试了我所知道的一切,但没有什么对我有用。另外我想知道case语句是否可以包含在属性文件中。

注意:我在本地模式下运行 Chef。

0 投票
2 回答
1144 浏览

chef-infra - 合并两个厨师属性

我们存储库中的两个不同文件包含以下行:

我想合并这两个属性。仅仅将一个设置为另一个是不够的,因为它们都可以互换使用。我最担心的是有人犯了这个错误:

在我们当前的结构下,忘记在我们的代码中设置两个变量的值是一个致命的错误。我想以维护覆盖层次结构的方式合并属性,这样如果 library_cookbook_1 具有角色级别覆盖,但 library_cookbook_2 具有环境级别覆盖,则厨师将处理覆盖,就好像属性只是一个属性一样。

理想的合并代码如下所示:

理想情况下,我希望每个属性都是指向同一事物的指针,这样,未来的调用和分配都适用于两者。

现在,显而易见的答案是简单地重构掉其中一个属性。不幸的是,chef 使重构属性变得困难——我们有 10 个不同的环境、7 个不同的角色、每个环境 20 个节点等。如果我们尝试重构整个事物,我们肯定会犯一个以微妙方式出现的错误。

0 投票
1 回答
578 浏览

ruby - 加载通过 Chef 代码创建的 Chef 数据包项时出错

我有两个与该问题相关的问题。(已解决的问题,下面提供的解决方案)

我有一个名为 java 的数据包。它包含特定于每个节点的主机名的数据包项,如下所示

我可以使用 Chef 代码创建数据包

但是在执行配方时,我在代码中遇到错误,它正在为 jdk_version 赋值

问题 1:如何从上述数据包项格式中获取值?

如果我如下创建数据包,我可以获取 jdk_version

以上述格式创建数据包的代码

问题2:我在之前的数据包项实现中做错了什么?

已解决的问题:: 我现在能够以下述格式创建数据包项,能够成功获取数据

在创建数据包项哈希时,为 jdk_version 及其值添加了“{}”大括号而不是“[]”。

下面提供了工作代码,

0 投票
1 回答
416 浏览

ruby - Chef Attributes Structure

I am just trying to understand if there is a difference on how we define the attribute structure in the cookbook's attribute files.

Following are two examples:

The reason I am asking this question is, in the previous versions of chef I kind of remember style-A is highly recommended and all the community cookbooks follow this style. I also recall seeing some issues with the style-B when I used to try to override the attributes from role or environment I would come up with a weird behavior that replaces the whole hash structure if I tried to override a single attribute in it.

I am not seeing this error now and I am on the latest 11 version of chef but was just wondering if this is something I should worry about. I am trying to be consistent with all my cookbooks with a single style and I need some advice on how I structure it. Does it matter at this point?

0 投票
1 回答
99 浏览

chef-infra - 厨师属性值重用

版本:

  • 服务器 12
  • 厨师客户 12.13.37

我有一个包含很多 url 引用但都指向同一服务器的属性文件。我想引用一个基本 url 来构建完整路径。然后,如果源服务器发生更改,我只需更改 top 属性。

原来的

计划

它可以编译并上传,但厨师运行返回以下内容:

可能是一些基本语法错误...

我查看了一些超市公共食谱的属性,他们称使用完整路径,所以这可能是不可能的。

0 投票
1 回答
159 浏览

json - chef_type 对于节点是强制性的吗?

在使用 Chef Server 的项目中,我们使用以下概念:

  • 节点
  • 角色
  • 环境

环境角色json 文件看起来不错(它们有chef_type和)json_class

  • ENV.json

    /li>
  • my_role.json

    /li>

节点看起来像这样(否chef_type,否json_class):

  • 我的.machine.json

    /li>

它是真正的 Chef 节点吗?

是否满足以下优先级
我想如果我"key":"value"在节点、角色和环境中有“正常”,则应用以下优先级(覆盖)顺序:节点>角色>环境,但根据该文档,优先级是角色>环境>配方,配方在与节点相同的表格单元格。

0 投票
2 回答
2435 浏览

ruby - 从 Chef 配方中引用属性

我有一个属性文件default.rb,其中有一个键,它default['current']以字符串格式存储一个目录。我想在更改目录时将其用于以下命令:

相反,当我运行食谱时,我得到了以下错误。

有没有我想念的正确方法来做到这一点?我宁愿不在工作目录中硬编码。

0 投票
3 回答
606 浏览

ruby - 用常量值初始化 Ruby 哈希

实际上我想在厨师属性中使用这样的结构,我用一个常量初始化一个结构并修改它

现在 init_value 也包含["a"]["x"] = "y",所以当我准备一个新值时

所以prepare["a"]包含键["b", "x", "y"]

如何在不引用常量的情况下使用常量初始化准备,以便在最后一步中prepare["a"]只包含两个键["b","y"]

0 投票
2 回答
32 浏览

chef-infra - 基于依赖执行厨师食谱

我有两本食谱:CookbookA 和 CookbookB

CookbookB 定义了一个属性(例如“include_xyz”)。
如果 CookbookA 已运行,则应将其设置为“true”,否则应将其设置为“false”。

CookbookB/attributes/default.rb 中的“include_xyz”定义应该如何?