tl;dr — Berkshelf-API и Chef Supermarket — это то, что Berkshelf использует для загрузки зависимостей кулинарных книг. Они предоставляют Berkshelf специально отформатированный документ .JSON для определения зависимостей кулинарных книг. Я не нашел причин, по которым другие репозитории артефактов нельзя было бы изменить, чтобы они возвращали документ .JSON в аналогичном формате, но, насколько мне известно, в настоящее время это не так.
Berkshelf-API: "Сервер, который индексирует кулинарные книги из различных источников и размещает их через REST API"
На самом деле Berkshelf-API используется Chef Supermarket.
Вы можете вручную получить список кулинарных книг из супермаркета, добавив «/universe» к URL-адресу (https://supermarket.getchef.com/universe).
Когда Berkshelf используется для разрешения зависимостей (используя «berks install» или «berks update»), он ищет исходную запись (обычно «источник» https://supermarket.getchef.com"' вверху файла Berksfile поваренной книги).
В Berksfile также есть «метаданные» под исходной записью. Это загружает зависимости поваренной книги, перечисленные в файле поваренной книги metadata.rb. Их можно переопределить зависимостями поваренной книги, перечисленными под записью «метаданные» в Berksfile.
Затем Berkshelf начинает загрузку зависимостей поваренной книги из исходной записи (в данном случае Supermarket).
Однако Berkshelf не загружает файлы зависимостей metadata.rb или Berkshelf рекурсивно.
пример: если Foo зависит от Bar, который зависит от Baz
Фу => Бар => Баз
Foo укажет зависимость Bar либо в metadata.rb, либо в Berksfile.
Bar укажет зависимость Baz либо в metadata.rb, либо в Berksfile.
Однако Berkshelf не будет определять зависимости для Bar (в данном случае Baz), читая файл metadata.rb или Berksfile для Bar. Вместо этого он определяет зависимости Bar, используя кэшированный список версионных кулинарных книг из Berkshelf-API, который возвращается при вызове исходной записи.
Частный сервер Berkshelf-API может быть настроен с несколькими конечными точками, указывающими на разные репозитории кулинарных книг (либо на другой сервер Berkshelf-API, либо на сервер Chef).
Таким образом, обычно используется частный сервер Berkshelf-API, указывающий как на частный сервер Chef (хранящий частные кулинарные книги), так и на сервер Chef Supermarket (хранящий общедоступные кулинарные книги).
person
DonBecker
schedule
14.11.2014