chef 策略组设置:Policyfile 不支持在 json 数据中设置 run_list

Posted

技术标签:

【中文标题】chef 策略组设置:Policyfile 不支持在 json 数据中设置 run_list【英文标题】:chef policy group setting: Policyfile does not support setting the run_list in json data 【发布时间】:2020-05-30 00:05:12 【问题描述】:

我已按照以下文章中的步骤进行操作 我收到以下错误

意外错误: ----------------- Chef::PolicyBuilder::Policyfile::UnsupportedFeature: Policyfile 不支持在 json 数据中设置 run_list。

这是我遵循的步骤

include_recipe 'basecookbook::default'

directory 'C:/ProgramData/ChefFiles' do
   inherits true
   action :create 
end

更新了 cooksbooks 元数据以指定对 base 的依赖

策略文件如下 食谱/test01/Policyfile.rb 将策略文件更改为

name 'test01'
    run_list 'test01::default'
    cookbook 'test01', path: '.'
    cookbook 'basecookbook', path: '../basecookbook'

policyfile.lock.json文件如下

"name": "test01",
"run_list": [
  "recipe[test01::default]"
],
"included_policy_locks": [
],
"cookbook_locks": 
  "test01": 

我将策略推送给 chef 并将节点设置为策略组和策略

chef push test01 .\cookbooks\test01\Policyfile.lock.json
knife node policy set NodeName 'test01' 'test01'

当我在节点上运行 Chef 客户端时,出现以下错误

意外错误:Chef::PolicyBuilder::Policyfile::UnsupportedFeature: Policyfile 不支持在 json 数据中设置 run_list。

【问题讨论】:

【参考方案1】:

您没有显示如何在节点上运行 chef-client 命令。您可能正在做的是将-j 选项包含到包含run_list 命令的JSON 文件中。该错误消息中引用的 JSON 是 -j 参数,与 PolicyFile.lock.json 内容无关。要么是这样,要么您可能会在命令行上直接使用 -r 选项指定 run_list(错误消息可能会有点误导 - 但它肯定是指命令行参数)

在进行基于 PolicyFile 的部署时,客户端无法通过设计来生成说明书的依赖项,因此不支持将任意 run_lists 传递给客户端,并且 run_list 必须来自 PolicyFile.lock.json 并且仅该文件(在使用chef push 推送到服务器之后)。

【讨论】:

以上是关于chef 策略组设置:Policyfile 不支持在 json 数据中设置 run_list的主要内容,如果未能解决你的问题,请参考以下文章

Windows Server 2012 R2 远程桌面连接 出现身份错误 要求的函数不受支持

组策略 之 设备安装设置

高手请进!域用户 组策略应用问题

08组策略管理

从磁盘中安装tcpip协议弹窗被组策略阻止,打开组策略后一大堆内容不知道在哪里设置,有电脑高手知道

securityPolicy与安全策略等级配置