Я не хочу использовать 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 на целевом узле.