настройка группы политик chef: файл политики не поддерживает установку run_list в json данных - PullRequest
0 голосов
/ 30 мая 2020

Я выполнил действия, описанные в статье ниже. Я получаю следующую ошибку

Неожиданная ошибка: ----------------- Chef :: PolicyBuilder: : Policyfile :: UnsupportedFeature: Policyfile не поддерживает установку run_list в json данных.

вот шаги, которые я выполнил

include_recipe 'basecookbook::default'

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

Обновлены метаданные кулинарных книг, чтобы указать зависимость от base

Файл политики выглядит следующим образом cookbooks / 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 push test01 .\cookbooks\test01\Policyfile.lock.json
knife node policy set NodeName 'test01' 'test01'

Когда я запускаю клиент шеф-повара на узле, я получаю следующую ошибку:

Неожиданная ошибка: Chef :: PolicyBuilder :: Policyfile :: UnsupportedFeature: Policyfile не поддерживает установку run_list в json данных.

1 Ответ

0 голосов
/ 04 сентября 2020

Вы не показываете, как вы выполняете команду chef-client на узле. Вероятно, вы включаете параметр -j в файл JSON, который содержит команду run_list. JSON, упоминаемый в этом сообщении об ошибке, является аргументом -j и не имеет ничего общего с содержимым PolicyFile.lock.json. Либо это, либо вы можете указать run_list напрямую с параметром -r в командной строке (и сообщение об ошибке может немного вводить в заблуждение - но это, безусловно, относится к аргументам командной строки)

При выполнении Развертывание на основе PolicyFile клиент не имеет возможности создавать зависимости кулинарных книг по дизайну, поэтому произвольные run_lists, передаваемые клиенту, не поддерживаются, а run_list должен поступать из PolicyFile.lock. json и только этот файл ( после отправки на сервер с помощью chef push).

...