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 远程桌面连接 出现身份错误 要求的函数不受支持