Должен ли я иметь несколько файлов конфигурации JSON Chef-Solo - PullRequest
2 голосов
/ 05 октября 2011

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

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

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

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

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

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

1 Ответ

6 голосов
/ 31 октября 2011

Я пролистал документы и несколько уроков соло для шеф-повара, и вот что я придумал. Как и почти во всех программах, существует более одного способа сделать это (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 обрели некоторую любовь к возможности использовать пакеты данных, и была создана поваренная книга для поиска. И то, и другое - большая часть настройки клиент-сервер, и я не думал, что они когда-нибудь будут добавлены в chef-solo. Chef-solo FTW!

Мой начальный загрузчик. https://github.com/tripleonard/chef-solo-bootstrap

Ура!

...