Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 如何在chef中查询角色内部的属性?_Deployment_Chef Infra - Fatal编程技术网

Deployment 如何在chef中查询角色内部的属性?

Deployment 如何在chef中查询角色内部的属性?,deployment,chef-infra,Deployment,Chef Infra,我使用的是10.16.2版 我有一个角色(ruby格式)。我需要访问其中一本食谱中的属性集 例如 我正在使用chef solo,因此无法使用上给出的搜索 如何访问角色定义中的节点属性 不确定我是否100%遵循,但如果您希望访问由配方中的角色设置的属性,则只需像调用任何其他节点属性一样调用它。例如,在您介绍的示例中,假设节点在其run_列表中具有basebox角色,您只需调用: node['rbenv']['group_users'] 角色属性将合并到节点中 HTH角色是JSON数据 也就是说,

我使用的是10.16.2版
我有一个角色(ruby格式)。我需要访问其中一本食谱中的属性集

例如

我正在使用chef solo,因此无法使用上给出的搜索


如何访问角色定义中的节点属性

不确定我是否100%遵循,但如果您希望访问由配方中的角色设置的属性,则只需像调用任何其他节点属性一样调用它。例如,在您介绍的示例中,假设节点在其run_列表中具有basebox角色,您只需调用:

node['rbenv']['group_users']
角色属性将合并到节点中

HTH

角色是JSON数据

也就是说,当您使用刀子将角色Ruby文件上载到服务器时,它们将转换为JSON。考虑这个角色:

name "gaming-system"
description "Systems used for gaming"
run_list(
  "recipe[steam::installer]",
  "recipe[teamspeak3::client]"
)
当我从文件gaming system.rb上传它时,我在服务器上有以下内容:

{
  "name": "gaming-system",
  "description": "Systems used for gaming",
  "json_class": "Chef::Role",
  "default_attributes": {
  },
  "override_attributes": {
  },
  "chef_type": "role",
  "run_list": [
    "recipe[steam::installer]",
    "recipe[teamspeak3::client]"
  ],
  "env_run_lists": {
  }
}
Ruby DSL的原因是它比JSON“更好”或“更容易”编写。比较这些行和语法,很容易看出哪一个更适合新用户(可能不熟悉JSON)


这些数据是通过API使用的。如果您需要对节点上的属性执行任何逻辑操作,请在配方中执行。

我尝试过这种方法,但在角色文件中不起作用。例如,我可以使用搜索,但这与厨师服务器,我使用厨师索洛伊明白你的意思。不,您不能这样做,因为ruby在应用到节点之前很久就被转换为json了。您需要使用配方进行上述转换。但我可以在角色中搜索(使用chef server)?您应该在配方中进行此操作。角色的Ruby DSL是为了方便。它不是进行计算或使用搜索的地方。
{
  "name": "gaming-system",
  "description": "Systems used for gaming",
  "json_class": "Chef::Role",
  "default_attributes": {
  },
  "override_attributes": {
  },
  "chef_type": "role",
  "run_list": [
    "recipe[steam::installer]",
    "recipe[teamspeak3::client]"
  ],
  "env_run_lists": {
  }
}