Станислав Мехоношин «Инфраструктура для разработки в...
TRANSCRIPT
Vagrant
Появился как Ruby Gem в 2010 году
Теперь есть инсталлер для всех ОС
www.vagrantup.com
Абстракция над гипервизорами VM
По-дефолту без UI
Vagrantfile
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box_url = "http://some/url"
config.vm.define "core", primary: true do |dev| dev.vm.network :forwarded_port, guest: 6379, host: 6379 # redis dev.vm.provision :shell, inline: script end
config.vm.define "web1" do |node| node.vm.network :private_network, ip: "#{SUBNET}.12" endend
2 подхода
Запускаем проект у себя, а зависимости в VM:1. пробрасываем порты2. приложение запускаем в хостовой системе
Запускаем проект также в VM:1. шарим папку с кодом2. код в хостовой системе3. приложение в гостевой
Как не надо делать
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box_url = "http://url-to-super-ready-box"
config.vm.define "myVM" do |node| endend
Управление конфигурацией
Конфигурация - это код
Конфигурация должна быть воспроизводимой
Не нужно ходить на сервера по SSH
Централизованное управление
Какие бонусы?
Локальный запуск проекта за 5 минут
Быстрый подъем нового сервера
Автоматическая выкатка на N серверов
Спокойствие
Просветление