Невозможно определить поваренную книгу из артефакта при установке шеф-повара из Policyfile - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь использовать файл политики для настройки репозитория Artifactory в качестве источника поваренной книги. Я использую ручную загрузку / скручивание, чтобы опубликовать кулинарную книгу в репозиторий /chef в артефакте (это тоже ново) - я не смог опубликовать с печью и хочу пока избегать ножевого искусства. Выполнение chef install завершается неудачей.

Я не уверен, является ли это ошибкой при загрузке или установке chef, и не получаю отладочную информацию от chef.

загрузка поваренной книги

curl --user "myuser:API_KEY" --data-binary @mycookbook.tar.gz -X PUT https://my-artifactory-server/artifactory/chef/mycookbook.tar.gz Я также пытался добавить его к /chef/mycookbook/mycookbook.tar.gz. В пути или имени артефакта нет версий, но метаданные действительны. Требуются ли версии?

Policyfile.rb

default_source :artifactory, "https://my-artifactory-server/artifactory/chef"
cookbook 'mycookbook'
run_list 'mycookbook::default'

Я пытался использовать /artifactory/api/chef/ и /artifactory/api/chef/chef в качестве URI. Переменная ARTIFACTORY_API_KEY установлена ​​на мой ключ API пользователя.

Из каталога с файлом политики я запускаю chef install -D - не так много информации отладки, но это вывод, который я получаю.

$ chef install --debug
Building policy mypol
Expanded run list: recipe[mycookbook::default]
Caching Cookbooks...
Error: Failed to generate Policyfile.lock
Reason: (Solve::Errors::NoSolutionError) Unable to satisfy the following requirements:

- `mycookbook (>= 0.0.0)` required by `user-specified dependency`

Попытался просмотреть журналы Артефакты, чтобы понять, что может быть не так, но не особо разглядеть - request.log показывает GET на /artifactory/api/chef/chef/universe, который возвращает OK с {} для тела - так что предположим кулинарную книгуне добавлен в какой-либо список поваренной книги? Версия Artifactory - 5.10.

Я попытался добавить виртуальное репо, которое обслуживает локальное репо "chef", и обновить файл политики с этим, но получить тот же результат.

1 Ответ

0 голосов
/ 01 октября 2019

В конце концов knife artifactory работает, чтобы посмотреть, как он загружается. Мой путь был неверным, и загрузка непосредственно в /artifactory/chef с PUT не отражается во вселенной.

для Curl, исключая параметры авторизации:

-X POST https://artifactory-server/artifactory/api/chef/REPO/api/v1/cookbooks/COOKBOOK.tgz?category=CAT -H "content-type: application/x-binary" --data-binary @yourcookbookarchive.tgz
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...