Назад | Перейти на главную страницу

Получение конкретной конфигурации сервера из Git в Chef Solo

Я не хочу использовать Chef Server на данный момент, а хочу использовать Chef Solo. Мне нужно хранить конфигурации (атрибуты и файлы) конкретных серверов в отдельном репозитории Git. Это необходимо для хранения кулинарных книг в открытом репозитории и скрытия конфигураций в частном репо.

Есть ли в Chef встроенная возможность получать атрибуты и файлы из репозитория Git? Как вы их обычно получаете?

Изучите возможность использования Berfshelf и шаблон поваренной книги окружающей среды. Этот шаблон проектирования помещает все кулинарные книги в свои собственные репозитории, общедоступные или частные.

В частности, для настройки конкретных серверов вы можете использовать поваренную книгу в частном репо с рецептом, используя node.set как упоминалось в этом сообщении в блоге. Или установите атрибуты в attributes/default.rb с заявлением вроде default['foobar']['version'] = '1.2.3'. Кулинарные книги открытого репо, которые не являются частными, могут быть взломаны и запущены из частных кулинарных книг с помощью include_recipe "{open-cookbook}::{open-recipe}".

Я использовал этот шаблон дизайна раньше в сочетании с ножевое соло, тем более что поддержка Berkshelf была добавлена ​​в 0.4.x. В частности, я использую команду knife solo cook someuser@localhost --sync-only. Это подготовит кухню к установке на целевую машину (загрузит все Berksified Cookbooks, создаст solo.rb и т. Д. И т. Д.), Но не запустит код. Или вызвать как knife solo cook someuser@targetnode для подготовки, синхронизации и запуска chef-solo на целевом узле.