Должен ли я иметь несколько файлов конфигурации json для шеф-повара?

Я только начал использовать шеф-соло. Я начал использовать chef-solo для создания своих веб-серверов Ruby on Rails с нуля. Наряду с файлами начальной загрузки (deploy.rb и install.rb) у меня есть два файла конфигурации (solo.json и solo.rb). Я настроил свой solo.json для запуска набора ролей и рецептов, которые будут настраивать веб-сервер.

Теперь я хочу использовать chef-solo, чтобы создать коробку для мифов со своими собственными настройками. Вместо того, чтобы иметь solo.json, я должен иметь «web_server.json» и «mythtv.json», чтобы перечислить мои различные рецепты/роли для создания этих серверов?

По логике это должно работать, но есть ли лучший способ? / это правильный путь?

Вот моя полная настройка (в ее нынешнем виде он создает веб-сервер для Ruby on Rails);

https://github.com/map7/chef-solo

Одним из способов было бы скопировать весь мой каталог chef-solo и настроить его для создания моей коробки Mythtv, но тогда мне придется поддерживать два набора файлов начальной загрузки и конфигурации chef-solo, и некоторые из кулинарных книг будут использоваться в обеих ситуациях. Например, apache2, который я хочу использовать как на Mythtv, так и на моем веб-сервере.


person map7    schedule 04.10.2011    source источник


Ответы (1)


Я изучил документы и несколько руководств для шеф-поваров, и вот что я придумал. Как и почти во всех программах, это можно сделать не одним способом (TIMTOWTDI). Думаю сделать свой урок...

Создайте base.json в качестве основных параметров конфигурации: учетные записи пользователей, возможно, iptables с доступом только к ssh, sudo для вашего пользователя и т. д. Вещи, которые будут одинаковыми на обеих (всех) машинах. Затем создайте роль для своей мифической машины и поместите ее в папку с ролями. Когда вы создаете новую роль, просто отредактируйте файл base.json и добавьте роль в список выполнения.

Кроме того, я не вижу папку site-cookbooks. Я тоже не понимал этого, когда начинал с шеф-соло. Вам это нужно. Если вы измените кулинарную книгу (что вы в конечном итоге сделаете), вы поместите измененный файл в папку site-cookbooks в той же структуре каталогов, что и исходная кулинарная книга. Допустим, вы хотите отредактировать шаблон apache2, вы должны поместить его в site-cookbooks-->apache2-->templates-->default-->apache2.conf.erb (например). Во время выполнения шеф-повар будет смотреть на ваш шаблон, а не на оригинал. Это упрощает отслеживание ваших дополнений/изменений, а также упрощает обновление оригинальной поваренной книги. Таким образом, у вас всегда будет только один архив поваренной книги. Если вы не вызовете рецепт/роль из json, он не будет выполнен. В моем репозитории chef-solo, чтобы создать архив, я запускаю:

tar zcvf chef-solo.tar.gz ./cookbooks ./roles ./site-cookbooks ./data-bags

И последнее замечание: более поздние версии шеф-повара получили некоторую популярность благодаря возможности использовать пакеты данных, и была создана кулинарная книга, позволяющая осуществлять поиск. Оба являются важными частями настройки клиент-сервер, и я не думал, что они когда-либо будут добавлены в chef-solo. Шеф-повар FTW!

Мой бутстрап fwiw. https://github.com/tripleonard/chef-solo-bootstrap

Ваше здоровье!

person tripleonard    schedule 31.10.2011