Краткое содержание:

Краткое содержание:

Краткое содержание:

У меня возникла проблема с «Knife data bag from file», когда knife не распознает файл .json data bag, извлеченный из удаленного репозитория git.

Фон:

В настоящее время я пытаюсь перейти от использования chef-solo к chef-server, используя при этом кулинарные книги, пакеты данных и другую информацию chef из нашего удаленного репозитория git.

В настоящее время я вытащил копию нашего git-репозитория и установил путь к кулинарной книге и пути к пакету данных в knife.rb. Я также загрузил кулинарные книги, внес изменения и т. д.

Подробности:

При попытке загрузить наши пакеты данных .json с помощью "knife data bag add from file FOLDER FILE" все работает, пока я не делаю "knife data bag list", и он не оказывается пустым. Поэтому я решил попробовать добавить опцию редактирования в конце, чтобы посмотреть, что загружается, если это так. Вот ошибка, которую я получаю:

knife data bag from file local_settings test.json -e nano
ERROR: Could not find or open file 'test.json' in current directory or in 'data_bags/local_settings/test.json'

Файл пакета данных существует, в правильном месте, в проверенном, рабочем файле json. Я также иногда получал ошибку, говорящую "не удалось открыть пакет данных "local_settings".

Очевидно, я хотел бы сохранить путь к пакету данных в соответствующей папке репозитория git, чтобы иметь возможность отслеживать изменения в более централизованном месте (нашем репозитории git, а не на сервере chef).

Любые решения, советы или указания в правильном направлении приветствуются.

решение1

Я не думаю, что допустимо использовать -e nanooption knife data bag from file(хотя справка командной строки подразумевает иное), но ее следует просто игнорировать. Эта ошибка означает, что knife не может найти указанный вами json-файл. Когда вы говорите, что элемент находится в правильном месте, где именно он был? Обратите внимание, что knife будет искать относительно вашего текущего каталога, а не вашего chef-repo.

После устранения этой проблемы вы столкнетесь с другой — вам нужно создать пакет данных, прежде чем вы сможете добавить в него элемент. Он должен появиться в выводе knife data bag listсразу после создания:

 $ knife data bag create local_settings
Created data_bag[local_settings]
 $ knife data bag list
  local_settings

Документацию по «Knife Data Bag» можно найти здесь:http://wiki.opscode.com/display/chef/Управление+данными+сумками+с+ножом

решение2

Я делаю это knife data bag list, но ответ пустой.

Это означает, что пакет данных local_settingsеще не создан.

Итак, его следует создать:

$> knife data bag create local_settings
Created data_bag[local_settings]

Затем он должен появиться в списке пакетов данных сервера:

$> knife data bag list
  local_settings

Затем можно загрузить файл пакета данных {{test.json}}.

А вот еще хорошее объяснение того, что на самом деле происходит:[ссылка на вики-сайт CHEF].

Связанный контент