После этого вы можете зайти на машину командой vagrant ssh и посмотреть, что произошло, и устраивает ли вас это.

Более того, vagrant позволяет проверять выкатку конфигурации с использованием chef-server, а также выкатку на несколько машин сразу. Это может понадобиться, например, если у вас есть сервисы, связанные между собою по сети, и вам хочется проверить их совместую работу в условиях, максимально приближенных к боевым.

Vagrant — это отличный инструмент, позволяющий ленивому инженеру, не любящему приключения, достаточно быстро сделать виртуальное окружение максимально приближенное к боевому. И потом на нем тестировать изменения конфигурации и выкатку.

Даже на моем слабеньком Air'11 виртуальные машины в VirtualBox работают достаточно быстро, чтобы пользоваться Vagrant локально.

' name='description'>

После этого вы можете зайти на машину командой vagrant ssh и посмотреть, что произошло, и устраивает ли вас это.

Более того, vagrant позволяет проверять выкатку конфигурации с использованием chef-server, а также выкатку на несколько машин сразу. Это может понадобиться, например, если у вас есть сервисы, связанные между собою по сети, и вам хочется проверить их совместую работу в условиях, максимально приближенных к боевым.

Vagrant — это отличный инструмент, позволяющий ленивому инженеру, не любящему приключения, достаточно быстро сделать виртуальное окружение максимально приближенное к боевому. И потом на нем тестировать изменения конфигурации и выкатку.

Даже на моем слабеньком Air'11 виртуальные машины в VirtualBox работают достаточно быстро, чтобы пользоваться Vagrant локально.

' property='og:description'>

После этого вы можете зайти на машину командой vagrant ssh и посмотреть, что произошло, и устраивает ли вас это.

Более того, vagrant позволяет проверять выкатку конфигурации с использованием chef-server, а также выкатку на несколько машин сразу. Это может понадобиться, например, если у вас есть сервисы, связанные между собою по сети, и вам хочется проверить их совместую работу в условиях, максимально приближенных к боевым.

Vagrant — это отличный инструмент, позволяющий ленивому инженеру, не любящему приключения, достаточно быстро сделать виртуальное окружение максимально приближенное к боевому. И потом на нем тестировать изменения конфигурации и выкатку.

Даже на моем слабеньком Air'11 виртуальные машины в VirtualBox работают достаточно быстро, чтобы пользоваться Vagrant локально.

' property='twitter:description'>

Технические заметки одного Евтуховича

Рассказ о серых трудовых буднях инженера программных систем

vagrant

| Комментарии

Очень странно, что я до сих пор не написал о Vagrant — инструменте создания и распространения виртуальных окружений.

Vagrant нужен для одной простой цели — тестировать выкатку и изменение конфигурции. Причем он позволяет делать это очень просто, особенно для Chef и Puppet. Vagrant — это надстройка над платформой виртуализации VirtualBox, которая позволяет легко и быстро создавать виртуальные машины по шаблону.

Работать с ним очень легко. Вы берете какой-нибудь готовый образ ОС (например, отсюда) или создаете свой, который и будет вашим шаблоном. А потом проверяете, как на этот образ накатываются ваши Chef-рецепты, причем можете делать это каждый раз с чистого листа. Конечно, образ должен быть точно такой же, который вы используете в бою, на staging-сервере, на CI-сервере и, вообще, везде. Это позволит вам выловить максимальное количество проблем до того, как они попадут на production. Более того, это гораздо удобнее, чем писать chef-рецепты «вслепую». Все, что происходит тяжело, надо делать часто, чтобы научиться делать это хорошо. Выкатка с изменением конфигурации обычно происходит тяжело. Поэтому стоит тренироваться менять конфигурацию и выкатываться, при этом желательно делать это в «песочнице», а не на сервере, который обслуживает ваших пользователей (и приносит деньги).

Итак, приступим.

gem install vagrant
mkdir vagrant
cd vagrant
vagrant init distr http://path-to-distr

Теперь у вас в папке появится файл Vagrantfile. Если заглянуть в него, то в комментариях там есть неплохие заготовки того, как настраивать vagrant. После редактирования у меня остался следующий файл.

Vagrant::Config.run do |config|
  config.vm.box = "work"

  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = "cookbooks"
    chef.add_recipe "sysctl"
  end
end

После этого прилинкуйте папку с вашими рецептами в текущую папку. В моих рецептах есть один с названием sysctl, именно его я буду тестировать.

ln -sf path/to/cookbooks cookbooks

Запускаем vagrant.

vagrant up
[default] VM already created. Booting if it's not already running...
[default] Clearing any previously set forwarded ports...
...
[default] [Fri, 13 Jan 2012 18:57:07 +0000] INFO: *** Chef 0.10.8 ***
: stdout
[default] [Fri, 13 Jan 2012 18:57:11 +0000] INFO: Setting the run_list to ["recipe[sysctl]"] from JSON
...
[default] [Fri, 13 Jan 2012 18:57:13 +0000] INFO: Chef Run complete in 1.973217 seconds
: stdout
[default] [Fri, 13 Jan 2012 18:57:13 +0000] INFO: Running report handlers
: stdout
[default] [Fri, 13 Jan 2012 18:57:13 +0000] INFO: Report handlers complete
: stdout

После этого вы можете зайти на машину командой vagrant ssh и посмотреть, что произошло, и устраивает ли вас это.

Более того, vagrant позволяет проверять выкатку конфигурации с использованием chef-server, а также выкатку на несколько машин сразу. Это может понадобиться, например, если у вас есть сервисы, связанные между собою по сети, и вам хочется проверить их совместую работу в условиях, максимально приближенных к боевым.

Vagrant — это отличный инструмент, позволяющий ленивому инженеру, не любящему приключения, достаточно быстро сделать виртуальное окружение максимально приближенное к боевому. И потом на нем тестировать изменения конфигурации и выкатку.

Даже на моем слабеньком Air'11 виртуальные машины в VirtualBox работают достаточно быстро, чтобы пользоваться Vagrant локально.

Комментарии