2014-03-07 5 views
1

Я смущен, когда дело доходит до шеф-повара/Беркшельфа, и вам нужна помощь и совет.Chef-Repo Berkshelf Confusion Setup

Что я нашел/прочитана есть более подчеркиванием предположение с некоторыми вещами с Berkshelf и для новичка есть немного серой области, которая нуждается в заполнении

Позвольте мне объяснить:

I последовал типичный путь Chef

Создать шеф-репозиторий в директории пользователя

C: \ Users \ itsmeofcourse \ шеф-репо

затем подключился к внутреннему git-repo и с радостью написал основные кулинарные книги для Windows и загрузил все в это git-repo.

В его нынешнем виде каждая поваренная книга существует под папкой «cookbook» в моем шеф-поре.

C:\Users\itsmeofcourse\chef-repo 
          /cookbook 

Я последовал путь написания обертки вокруг поваренных сообществ кулинарных книг, так что это будет выглядеть как

client_iis - зависит от department_iis - зависит от global_iis - зависит от IIS - сообщество поваренного

Это позволяет нам изменять IIS на разных уровнях внутри нашей инфраструктуры.

Теперь, когда документация я чувствую падает вниз, как все говорят, двигайте поваренные книги из папки «Поваренной книги»

так что я понимаю, «ваш» шеф-репо будет существовать в GIT-репозитории, но только для изменений в подпапках, таких как среды/пакеты данных/роли/сертификаты и т. д.? и поваренная книга тогда отдельные проекты, это правильно или нет?

Куда вы перемещаете свои кулинарные книги? где-нибудь на вашем компьютере/внутри вашего пользователя% home%? Как шеф-повар знает, где они хранятся, или вам нужно изменить свой «knife.rb» и указать на определенный каталог?

так он будет выглядеть

knife.rb cookbook_path [ "C:/поваренные книги"]

C: \ Users \ itsmeofcourse \ шеф-репо: GitHub => repo_1

c:/cooksbooks 
    /base :github => repo_2 
    /iis :github => repo_3 
    /sql :github => repo_4 
    /client_iis :github => repo_ 
    /department_iis :github => repo_3 

Могу ли я спросить, что мне не хватает

или вы помещаете berksfile в корень моего шеф-повара и затем что-то делаете? управлять всем в моей папке с кулинарной книгой?

Я прочитал https://github.com/berkshelf/berkshelf/issues/535

пожалуйста, может кто-то помочь

ответ

0

Да, это правильно, и вы, как правило, переместить поваренные книги в отдельном хранилище.

Один gotcha У меня было, было, читая эту статью: http://www.prashantrajan.com/posts/2013/06/leveling-up-chef-best-practices/ и часть «Единый репо за кулинарию». Прочтите все, это хорошо!

Кажется, что вы ничего не пропустили. Перемещение ваших кулинарных книг из каталога кулинарных книг означает создание отдельных репозиториев в каждой поваренной книге и в зависимости от них с использованием верхнего уровня Berksfile (в корне вашего шеф-повара).

Для типичного бомжа + повара репо для веб-приложения (так называемый coolwebapp), я бы обычно:

. 
+-- cmp-cookbooks 
| +-- cmp-coolwebapp (this is only cookbook stored in this repo, and this repo exists because of this cookbook) 
+-- data_bags 
| +-- users 
| | +-- mysql.json 
| | +-- os.json 
| | +-- admins.json 
| +-- private_keys 
|  +-- deployment.json 
+-- environments 
| +-- production.rb 
| +-- staging.rb 
| +-- qa.rb 
| +-- integration.rb 
| +-- local.rb 
+-- nodes (but this should not be stored in your repo I guess) 
| +-- ip_here.json 
| +-- other_ip_here.json 
+-- Berksfile 
+-- Vagrantfile 

Berksfile будет содержать:

cookbook "cmp-coolwebapp", "~>0.3.0", path: "./cmp-cookbooks/cmp-coolwebapp" 
cookbook "cmp-provisioning", "~>0.7.0", git: _priv_provisioning_cookbook_repo_ 
cookbook "cmp-role-db",  "~>0.7.0", git: _priv_role1_cookbook_repo_ 
cookbook "cmp-role-www",  "~>0.8.0", git: _priv_role2_cookbook_repo_ 
cookbook "cmp-role-devops", "~>0.7.0", git: _priv_role3_cookbook_repo_ 

"ЧМК" означает для нашей компании имя. Наши кулинарные книги хранятся в частных репозиториях и поддерживаются индивидуально.

Кулинарная книга cmp-role-www, например, будет иметь в основном кулинарные книги сообщества в качестве зависимостей в Berksfile и наши собственные кубики-кубки cmp-apache2, cmp-nginx, cmp-лак, хранящиеся в своем репо.

Отвечая на ваш последний вопрос»„Как повар знает, где они хранятся, или вы должны изменить свой „knife.rb“ и точку в определенной директории?“

Если управлять зависимостями поваренной книги с Berkshelf вы можете включать в кулинарную книгу из любого места вы предпочитаете:

cookbook "artifact", path: "/Users/reset/code/artifact-cookbook" 
cookbook "mysql",  git: "https://github.com/opscode-cookbooks/mysql.git", branch: "foodcritic" 
cookbook "rightscale", git: "https://github.com/rightscale/rightscale_cookbooks.git", rel: "cookbooks/rightscale" 

последняя полезна, когда вы храните несколько кулинарной компании в одном хранилище раздел http://berkshelf.com/ «опции Source»

..