Как управлять избыточностью в поваренных книгах шеф-репо и беркшельфа

Я использую Chef для автоматизации. У меня есть поваренная книга от шеф-повара, в которой есть пользовательские поваренные книги, а также поваренные книги с сайта opscode.

Поскольку немногие поваренные книги имеют зависимость от других поваренных книг, я установил эти зависимости с помощью утилиты berks.

Теперь мой вопрос: как я могу управлять как кулинарными книгами, так и их избыточностью.

1 ответ

Вот подробный ответ,

Вы можете упомянуть свои кулинарные книги-обертки и их зависимости в одном и том же berksfile. Источник поваренной книги в "Beksfile" может быть из "Chef Supermarket", источника GIT и локального пути системы.

Рассмотрим кулинарную книгу "mysql_wrapper" - это поваренная книга, разработанная вами, и она использует поваренную книгу сообщества "mysql". Также учтите, что оболочка находится в системном локальном пути.

Вот пример содержимого Berksfile для вышеуказанного сценария.

source "https://supermarket.chef.io"

cookbook 'mysql'
cookbook 'mysql_wrapper', path: '/system/local/path/to/wrapper-cookbooks/mysql_wrapper'

Как это устроено?

Когда вы запускаете "установку berks" или "загрузку berks", Berkshelf разрешает поваренные книги, упомянутые в berksfile.

Поваренная книга зависимого сообщества будет загружена из "Супермаркета", потому что мы ссылались на нее в первой строке. Пока в кулинарную книгу-оболочку будет ссылаться местный путь.

Настройка проекта для управления кулинарными книгами, ролями и data_bags

  • Создайте репозиторий проекта с вашими кулинарными книгами и другими материалами.
  • Репозиторий проекта - не что иное, как каталог, содержащий другие каталоги для 1. Ролей, 2. Пакетов данных, 3. Поваренных книг и 4. Сред. По вашему требованию создайте хранилище.
  • Поместите свои кулинарные книги в каталог кулинарных книг.
  • Создайте каталог как "роли". Добавьте роли в виде файлов.json.
  • В случае data_bag/data_bag_item создайте каталог как data_bags. Создайте каталог для каждого data_bag и добавьте элементы в виде файлов ".json".
  • Создайте bersfile внутри репо

Управление сервером Chef

В случае, если вы хотите загрузить контент, выполните следующие действия,

  • Создайте каталог ".chef" внутри репо проекта
  • Скопируйте ваши ножевые /pem файлы сервера Chef в.chef
  • Запустите команду "загрузка berks" из репо проекта. Ваши кулинарные книги будут загружены на сервер Chef.
  • Запустите загрузку ножа data_bags и роли загрузки ножа, чтобы загрузить свои пакеты данных и роли из репозитория.
Другие вопросы по тегам