问题标签 [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.
attributes - Chef 属性如何在内部存储
我知道我们可以在哪里定义厨师属性、属性类型以及它们的优先级。我只想了解它们是如何在内部存储的。
假设我声明了一个属性
1)它是如何在内部存储的?它是在节点对象中的树结构(heirarchy)中使用,还是作为哈希图或节点对象中的变量列表?
2)另外,在大多数食谱中,我看到属性是在 2 或 3 级中声明的,我不明白这是标准还是最佳实践?对于必须声明属性的方式是否有任何指导方针?是否与它的内部存储有关。我不能将属性声明为
并在我的食谱中按以下方式访问它?
chef-infra - 厨师属性文件
我有一个厨师食谱,用于创建三个用户,将它们添加到一个组并将它们写入一个 sudoers 文件。
我是 Chef 的新手,我需要一些帮助来为这个食谱编写一个合适的属性文件(/cookbook/User/attributes/default.rb)。我已经尝试了我所知道的一切,但没有什么对我有用。另外我想知道case语句是否可以包含在属性文件中。
注意:我在本地模式下运行 Chef。
chef-infra - 合并两个厨师属性
我们存储库中的两个不同文件包含以下行:
我想合并这两个属性。仅仅将一个设置为另一个是不够的,因为它们都可以互换使用。我最担心的是有人犯了这个错误:
在我们当前的结构下,忘记在我们的代码中设置两个变量的值是一个致命的错误。我想以维护覆盖层次结构的方式合并属性,这样如果 library_cookbook_1 具有角色级别覆盖,但 library_cookbook_2 具有环境级别覆盖,则厨师将处理覆盖,就好像属性只是一个属性一样。
理想的合并代码如下所示:
理想情况下,我希望每个属性都是指向同一事物的指针,这样,未来的调用和分配都适用于两者。
现在,显而易见的答案是简单地重构掉其中一个属性。不幸的是,chef 使重构属性变得困难——我们有 10 个不同的环境、7 个不同的角色、每个环境 20 个节点等。如果我们尝试重构整个事物,我们肯定会犯一个以微妙方式出现的错误。
ruby - 加载通过 Chef 代码创建的 Chef 数据包项时出错
我有两个与该问题相关的问题。(已解决的问题,下面提供的解决方案)
我有一个名为 java 的数据包。它包含特定于每个节点的主机名的数据包项,如下所示
我可以使用 Chef 代码创建数据包
但是在执行配方时,我在代码中遇到错误,它正在为 jdk_version 赋值
问题 1:如何从上述数据包项格式中获取值?
如果我如下创建数据包,我可以获取 jdk_version
以上述格式创建数据包的代码
问题2:我在之前的数据包项实现中做错了什么?
已解决的问题:: 我现在能够以下述格式创建数据包项,能够成功获取数据
在创建数据包项哈希时,为 jdk_version 及其值添加了“{}”大括号而不是“[]”。
下面提供了工作代码,
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?
chef-infra - 厨师属性值重用
版本:
- 服务器 12
- 厨师客户 12.13.37
我有一个包含很多 url 引用但都指向同一服务器的属性文件。我想引用一个基本 url 来构建完整路径。然后,如果源服务器发生更改,我只需更改 top 属性。
原来的
计划
它可以编译并上传,但厨师运行返回以下内容:
可能是一些基本语法错误...
我查看了一些超市公共食谱的属性,他们称使用完整路径,所以这可能是不可能的。
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"
在节点、角色和环境中有“正常”,则应用以下优先级(覆盖)顺序:节点>角色>环境,但根据该文档,优先级是角色>环境>配方,配方在与节点相同的表格单元格。
ruby - 从 Chef 配方中引用属性
我有一个属性文件default.rb
,其中有一个键,它default['current']
以字符串格式存储一个目录。我想在更改目录时将其用于以下命令:
相反,当我运行食谱时,我得到了以下错误。
有没有我想念的正确方法来做到这一点?我宁愿不在工作目录中硬编码。
ruby - 用常量值初始化 Ruby 哈希
实际上我想在厨师属性中使用这样的结构,我用一个常量初始化一个结构并修改它
现在 init_value 也包含["a"]["x"] = "y"
,所以当我准备一个新值时
所以prepare["a"]
包含键["b", "x", "y"]
。
如何在不引用常量的情况下使用常量初始化准备,以便在最后一步中prepare["a"]
只包含两个键["b","y"]
?
chef-infra - 基于依赖执行厨师食谱
我有两本食谱:CookbookA 和 CookbookB
CookbookB 定义了一个属性(例如“include_xyz”)。
如果 CookbookA 已运行,则应将其设置为“true”,否则应将其设置为“false”。
CookbookB/attributes/default.rb 中的“include_xyz”定义应该如何?