22
Express42// follow: @Express42_ru Vagrant: плагины и гастрономический фестиваль

Vagrant: плагины и гастрономический фестиваль

Embed Size (px)

Citation preview

Page 1: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

Vagrant: плагины и гастрономический фестиваль

Page 2: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

Vagrant и

Работа с проектом клиента • Подготовка chef кукбуков специфичных для клиента • Интеграция компонентов проекта между собой • Доработка интеграций, кукбуков, и т.д.

Разработка своих кукбуков • Разработка кукбуков для различных сервисов • Тестирование кукбуков

Page 3: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

Vagrant и

!• Не лепить костыли (по возможности) • Быстрый vagrant provision • Работать в полевых условиях • Интеграция с разными окружениям

Page 4: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

vagrant-cachier

• Пришел на смену vagrant-apt_cache • Кеширует deb/gem/… в пределах box или machine • Вам нужен будет хоть какой-то интернет

https://github.com/fgrehm/vagrant-cachier

Page 5: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

nugrant

• Параметризация Vagrantfile с помощью yaml • Удобно для распространения Vagrantfile

https://github.com/maoueh/nugrant

Page 6: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

nugrant

...!config.vm.define config.user.vmname do |main|!! main.vm.network :forwarded_port, guest: 80, host: 8080!! main.vm.hostname = config.user.vmname!! config.vm.provision :chef_solo do |chef|!! ! chef.encrypted_data_bag_secret_key_path = config.user.encrypted_secret_key_path!! end!end!...

cat ./.vagrantuser!vmname: "web01"!encrypted_secret_key_path: "<some_path>/encrypted_data_bag_secret"

Page 7: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

landrush

• Автоматически настраиваемый dns сервер • Добавляет пару hostname – IP машины в заданный вами поддомен

• Больше не надо править /etc/hosts • Работает как для хоста(в MAC OS из коробки) так и для гостевых машин

https://github.com/phinze/landrush

Page 8: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

landrush

Vagrant.configure("2") do |config|! ...! config.landrush.enable! config.landrush.tld = 'vagrant'!! config.vm.define :web01 do |main|! main.vm.network :forwarded_port, guest: 80, host: 8080! main.vm.hostname = "web01.vagrant"! end!end!

ping web01.vagrant!PING web01.vagrant (172.28.128.5): 56 data bytes!64 bytes from 172.28.128.5: icmp_seq=0 ttl=64 time=0.292 ms

ping deploy.web01.vagrant!PING deploy.web01.vagrant (172.28.128.5): 56 data bytes!64 bytes from 172.28.128.5: icmp_seq=0 ttl=64 time=0.292 ms

Page 9: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

Плагины на каждый день

• vagrant-auto_network • vagrant-libvirt • vagrant-persistent-storage • vagrant-parallels ;)

Page 10: Vagrant: плагины и гастрономический фестиваль

Жизнь удалась?

Page 11: Vagrant: плагины и гастрономический фестиваль
Page 12: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

• Показать возникшую ошибку • Дать разработчику возможность сделать ресерч • Показать что-то с локальной машины

Как обычно решают

• Скриншоты (от двух до пяти) • ssh -R; nc -p 2222 ; … ; и настроить ваш роутер!

Проблема

Page 13: Vagrant: плагины и гастрономический фестиваль

Show me your kitchen!

Page 14: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

• Показать ошибки/баги/…

• Тестировать коллбеки внешних систем

• Показать прототип новой фичи

• Попросить помощи

VAGRANT-FOODSHOW

Page 15: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

VAGRANT-FOODSHOW

• Вся конфигурация в Vagrantfile • Работает только тогда, когда запущена VM • Использует ngrok для туннелирования

http://foodshow.iohttps://github.com/express42/vagrant-foodshow

Page 16: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

NGROK

Page 17: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

NGROK

•Туннелирование HTTP/S с интроспекцией запросов •Туннелирование любого бинарного протокола •Резервирование адресов вида <domain>.ngrok.com •basic-auth для http/s протокола •Opensource! Go(lang) inside!

https://github.com/inconshreveable/ngrok

Page 18: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

VAGRANT-FOODSHOW Пример конфигурации

Vagrant.configure("2") do |config|! #Enable foodshow! config.foodshow.enabled = true! ...! # Define vm! config.vm.define :web01 do |conf|! ...! #Just add ngrok_proto parameter to your port forwarding entry! conf.vm.network :forwarded_port, guest: 80, host: 8080, ngrok_proto: "http+https"! ...! end!end!

Page 19: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

VAGRANT-FOODSHOW

Page 20: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

Интроспекция запросов

Page 21: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

• Вышел Vagrant 1.5 • Встроенный плагин Vagrant Share • Облако для распространения box

VAGRANT CLOUD

Page 22: Vagrant: плагины и гастрономический фестиваль

Express42// follow: @Express42_ru

Конец. twitter: @ex_sample email: [email protected]