Posts tagged ‘chef’

Боль и ненависть в Puppet.

risovach.ru
Коротко, когда-то я много пользовался Puppet (_1, _2), сейчас уже пол года только и делаю что пишу для Chef. Пару дней назад наткнулся на статью Что нового в Puppet 4 и прослезился…
Моя статья от 2010 (sic!) года – _1 и _2

P.S.

Скоро попрут статьи про Opscode Chef.

Настройка нескольких cookbook_path для chef-solo

Так бывает, что есть кукбуки стандартные, например сделанные Opscode, а есть еще свои, от проекта и нужно их хранить в разных папках а использовать вместе.
Столкнулся с такой проблемой когда использовал chef-solo, не мог понять как указать несколько папок с кукбуками, оказалось все просто как Ruby:

cookbook_path [ root + '/cookbooks/', root + '/site-cookbooks/' ]

Как по быстрому настроить сервер с помощью chef-solo

Ну так бывает, нужно по быстрому настроить сервер, а руками делать не хочется, а то и просто не интересно. Поэтому охота автоматизации и на помощь приходит chef-solo.
Это версия Chef которой не нужен сервер, собираем все кукбуки локально, создаем два небольших конфига и запускаем.

Установка Chef[-solo]

Ставим Chef[-solo] (если Вам нужна определенная версия Chef, делайте как в предыдущей статье ):

curl -L https://www.opscode.com/chef/install.sh | bash

Собираем Cookbook`и

Теперь, если вы определились с тем, что хотите поставить, собираем нужные Cookbook`и на сервере.

  • Идем в магазин рецептов и ищем нужные – https://supermarket.chef.io/cookbook
  • Там для каждого нужного рецепта тыкаем кнопку Download или клоним из гита (там есть ссылка на Sources), не забываем про закладку Dependencies.

Разархивируем все архивы в папку cookbooks/, создаем два конфиг-файла.

solo.rb

root = File.absolute_path(File.dirname(__FILE__))
 
file_cache_path root + "/cache/"
cookbook_path root + '/cookbooks/'

solo.json

{
    "run_list": [ 
        "recipe[zabbix::server]", 
        "recipe[zabbix::web]" 
    ]
}

Как бы и все, пора смотреть как другие работают!

chef-solo -c solo.rb -j solo.json

P.S.

К сожалению никакие рецепты не идеальны, поэтому Chef`у лучше всего отдавать сервера сразу после установки ОС, т.к. рецепты не всегда адекватно реагируют, если на сервере уже что то было установлено или настроено раньше.

Как поставить определенную версию Chef без knife

Все мы знаем, что последнюю версию Chef можно поставить выполнив простой как палка скрипт:

curl -L https://www.opscode.com/chef/install.sh | bash

Но во всяких продакшенах бывает нужно поставить Chef именно определенной версии, т.к. рецепты тестировались именно для него и вообще у нас тут Enterprise. Команда несколько усложняется:

curl -L https://www.opscode.com/chef/install.sh | sudo bash -s -- -v 11.14.2

Полный список версий Chef

P.S.
Кстати с помощью Knife bootstrap это делается вот так:

knife bootstrap [...] --verbose --bootstrap-version 11.12.8