Vagrant: плагины и гастрономический фестиваль
-
Upload
nikita-borzykh -
Category
Technology
-
view
539 -
download
0
Transcript of Vagrant: плагины и гастрономический фестиваль
Express42// follow: @Express42_ru
Vagrant: плагины и гастрономический фестиваль
Express42// follow: @Express42_ru
Vagrant и
Работа с проектом клиента • Подготовка chef кукбуков специфичных для клиента • Интеграция компонентов проекта между собой • Доработка интеграций, кукбуков, и т.д.
Разработка своих кукбуков • Разработка кукбуков для различных сервисов • Тестирование кукбуков
Express42// follow: @Express42_ru
Vagrant и
!• Не лепить костыли (по возможности) • Быстрый vagrant provision • Работать в полевых условиях • Интеграция с разными окружениям
Express42// follow: @Express42_ru
vagrant-cachier
• Пришел на смену vagrant-apt_cache • Кеширует deb/gem/… в пределах box или machine • Вам нужен будет хоть какой-то интернет
https://github.com/fgrehm/vagrant-cachier
Express42// follow: @Express42_ru
nugrant
• Параметризация Vagrantfile с помощью yaml • Удобно для распространения Vagrantfile
https://github.com/maoueh/nugrant
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"
Express42// follow: @Express42_ru
landrush
• Автоматически настраиваемый dns сервер • Добавляет пару hostname – IP машины в заданный вами поддомен
• Больше не надо править /etc/hosts • Работает как для хоста(в MAC OS из коробки) так и для гостевых машин
https://github.com/phinze/landrush
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
Express42// follow: @Express42_ru
Плагины на каждый день
• vagrant-auto_network • vagrant-libvirt • vagrant-persistent-storage • vagrant-parallels ;)
Жизнь удалась?
Express42// follow: @Express42_ru
• Показать возникшую ошибку • Дать разработчику возможность сделать ресерч • Показать что-то с локальной машины
Как обычно решают
• Скриншоты (от двух до пяти) • ssh -R; nc -p 2222 ; … ; и настроить ваш роутер!
Проблема
Show me your kitchen!
Express42// follow: @Express42_ru
• Показать ошибки/баги/…
• Тестировать коллбеки внешних систем
• Показать прототип новой фичи
• Попросить помощи
VAGRANT-FOODSHOW
Express42// follow: @Express42_ru
VAGRANT-FOODSHOW
• Вся конфигурация в Vagrantfile • Работает только тогда, когда запущена VM • Использует ngrok для туннелирования
http://foodshow.iohttps://github.com/express42/vagrant-foodshow
Express42// follow: @Express42_ru
NGROK
Express42// follow: @Express42_ru
NGROK
•Туннелирование HTTP/S с интроспекцией запросов •Туннелирование любого бинарного протокола •Резервирование адресов вида <domain>.ngrok.com •basic-auth для http/s протокола •Opensource! Go(lang) inside!
https://github.com/inconshreveable/ngrok
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!
Express42// follow: @Express42_ru
VAGRANT-FOODSHOW
Express42// follow: @Express42_ru
Интроспекция запросов
Express42// follow: @Express42_ru
• Вышел Vagrant 1.5 • Встроенный плагин Vagrant Share • Облако для распространения box
VAGRANT CLOUD
Express42// follow: @Express42_ru
Конец. twitter: @ex_sample email: [email protected]