Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Manage environment with Vagrant

Manage environment with Vagrant

Talk from SPRUG Meetup 5 (http://sprug.ru)

Andrey Deryabin

April 01, 2013
Tweet

More Decks by Andrey Deryabin

Other Decks in Programming

Transcript

  1. MULTI_JSON или история о потерянном времени def default_adapter return :oj

    if defined?(::Oj) return :yajl if defined?(::Yajl) return :json_gem if defined?(::JSON) return :gson if defined?(::Gson) // ... end Monday, April 1, 13
  2. CONTINUOUS INTEGRATION • Самотестируемая сборка • Автоматизация сборки • Единый

    репозиторий • Быстрая сборка • Доступ до последней сборки • Каждое изменение в репозитории должно включаться в сборку на интеграционном сервере • Автоматическое развертывание • Производите тестирование в копии среды реальной эксплуатации • Простой доступ к файлам последней сборки Monday, April 1, 13
  3. $ gem install vagrant $ gem install chef $ gem

    install librarian Бандлер для рецептов Monday, April 1, 13
  4. УПРАВЛЕНИЕ ОБРАЗАМИ $ vagrant box list $ vagrant box add

    {title} {url} $ vagrant box remove {title} Monday, April 1, 13
  5. ПОЛЕЗНЫЕ НАСТРОЙКИ Vagrant::Config.run do |config| config.vm.box = "debian" config.ssh.forward_agent =

    true config.vm.box_url = "http://f.willianfernandes.com.br/vagrant-boxes/ DebianSqueeze64.box" config.vm.forward_port 3001, 3001 config.vm.forward_port 4000, 4000 config.vm.forward_port 5432, 5432 config.vm.forward_port 4567, 4567 config.vm.share_folder "code", "/code", "~/code", :nfs => true end Прокидываем ssh-ключи Прокидываем порты Прокидываем папки Путь до образа Monday, April 1, 13
  6. НАСТРАИВАЕМ CHEF-SOLO (VAGRANTFILE) Vagrant::Config.run do |config| config.vm.provision :chef_solo do |chef|

    chef.cookbooks_path = ["cookbooks"] chef.add_recipe "apt" chef.add_recipe 'ruby_build' chef.add_recipe 'rbenv::user' chef.add_recipe 'postgresql' chef.json = { 'rbenv' => { 'user_installs' => [ { 'user' => 'vagrant', 'rubies' => ['1.9.3-p392'], 'global' => '1.9.3-p392' } ] } } end end Monday, April 1, 13
  7. НАСТРАИВАЕМ CHEF-SOLO (CHEFFILE) # encoding: utf-8 site 'http://community.opscode.com/api/v1' cookbook 'apt'

    cookbook 'rbenv', :git => 'git://github.com/fnichol/chef-rbenv.git' cookbook 'ruby_build', :github => 'fnichol/chef-ruby_build', :ref => 'v0.7.2' cookbook 'postgresql', :github => 'express42-cookbooks/ postgresql' Monday, April 1, 13
  8. ЧТО ПОЛУЧАЕМ? ✓ Быстрое развертывание на любой OС ✓ Отделение

    среды разработки от привязки к ноутбуку ✓ Портабельность ✓ Прозрачность ✓ Быстрый доступ ✓ Плацдарм для экспериментов ✓ Новый опыт Monday, April 1, 13
  9. СПИСОК ЛИТЕРАТУРЫ • http://www.martinfowler.com/articles/continuousIntegration.html • https://www.virtualbox.org/ • http://virtualboxes.org/images/ • http://www.vagrantup.com/

    • http://www.vagrantbox.es/ • https://www.engineyard.com/products/local • http://yieldthought.com/post/12239282034/swapped-my-macbook-for-an-ipad Monday, April 1, 13