Как управлять избыточностью в поваренных книгах шеф-репо и беркшельфа
Я использую 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 и роли загрузки ножа, чтобы загрузить свои пакеты данных и роли из репозитория.