SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
wojtek krawczyk -interia.pl
about.me/wojtekk
Przygotowanie środowiska
Instalacja oprogramowania
Pobierz izainstaluj aplikacje:
Dodaj vagrant-vbguest- aktualizuje Virtual Box GuestAdditions
Dodatkowo, napotrzebytego warsztatu zainstaluj:
Skonfiguruj Git'a:
VirtualBox
Vagrant
vagrantplugininstallvagrant-vbguest
Git
gitconfig--globaluser.email"Your.Name@example.org"
gitconfig--globaluser.name"YourName"
Instalacja oprogramowania
Jeżelitwój katalogdomowy, pod Windows, jestnadysku
sieciowym (np. zasprawąActive Directory), zadbaj o ustawienie
zmiennych środowiskowych
Większość może pominąć ten slajd.
VAGRANT_HOME
VAGRANT_HOME=C:Usersimie.nazwiskoAppDataLocalVagrant
VBOX_USER_HOME
VBOX_USER_HOME=C:Usersimie.nazwiskoAppDataLocalVirtualBox
CLI
Napotrzebytego warsztatu będziesz korzystał z liniipoleceń:
Windows: GitBash
Linux/Mac OS X: dowolnapowłoka
Wsparcie Vagrant w IDE
Vagrant-Netbeans plugin
VagrantSupportin PhpStorm
Praca z projektem
Projekt
Serwis informacyjnyopartyo Wordpress,
środowisko uruchomieniowe: LAMP.
Zaczynamy!
Pobierz kod
gitclonehttps://github.com/wojtekk/vagrantpress.git
Uruchom środowisko
cdvagrantpress
vagrantup
Otwórz w przeglądarce:
Keep calmand go to work!
localhost:8080
SSH
Dostęp do maszynypo SSH
vagrantssh
SSH ‐ Putty
Klucz prywatny(OpenSSH) znajdziesz w pliku:
insecure_private_key
w katalogu domowyVagrant, domyślnie:
%USERPROFILE%/.vagrant.dlub %VAGRANT_HOME%
Konwertuj klucz OpenSSHdo formatu kluczaprywatnego Putty
korzystając z :PuTTYgen
Conversion  Import
Save private key
Utwórz połączenie w Putty:
vagrant@localhost:2222
Status maszyn
Pojedynczej
vagrantstatus
Wszystkich
vagrantglobal-status
Vagrant Box
Lista
Dodanie
Usunięcie
Sprawdzenie aktualności
Aktualizacja
vagrantboxlist
vagrantboxadd<user/box>
vagrantboxadd<url>
vagrantboxremove<name>
vagrantboxoutdated
vagrantboxupdate
Vagrant Plugins
Lista
Dodanie
Usunięcie
Aktualizacja
vagrantpluginlist
vagrantplugininstall<name>
vagrantpluginuninstall<name>
vagrantpluginupdate
Kończymy!
Kończąc prace możesz maszynę:
uśpić
wyłączyć
zniszczyć
vagrantsuspend
vagranthalt
vagrantdestroy
Koniec :)
Częścipierwszej
Nowy projekt
Przygotowanie maszyny
1. Szukasz gotowcaw siecinp. naGitHub, Google
2. Korzystasz z GUI które pozwalająwyklikać konfigurację
3. Szukabox'aktórymawymagane oprogramowanie
4. Przygotowujesz maszynę samodzielnie
Wyklikanie box'a
PuPHPet
rove.io
Kompletny Box
Szukasz box'az wymaganym oprogramowaniem na:
vagrantcloud.com
Kompletny box z LAMP
Zainicjalizuj box
vagrantinitsmallhadroncollider/centos-6.4-lamp
EDYTUJESZ VAGRANTFILE
Ustaw przekierowanie portów dlaapache
Apache korzystaz katalogu /var/www/public -podstaw
kod
Autor rekomenduje użycie statycznego IP napotrzebySSL
config.vm.network:forwarded_port,guest:80,host:8080
config.vm.synced_folder"./","/var/www"
config.vm.network"private_network",ip:"172.31.254.252"
Kompletny box z LAMP
Uruchom maszynę
Otwórz w przeglądarce:
$mkdirpublic
$echo"test">public/index.html
$vagrantup
localhost:8080
Provisioning
Przygotowanie środowiska
Zainstaluj plugin sahara
Obsługasandbox'ów (snapshotyw VirtualBox)
vagrantplugininstallsahara
Nowy projekt
Przygotuj środowisko dla .DokuWiki
Kroki
1. Określwymaganiaoprogramowania
2. Wybierz lub przygotuj box'a
3. Przygotuj konfiguracje środowiska-Vagrantfile
4. Przygotuj konfiguracjisystemu -provisioning
5. Przetestuj przygotowane rozwiązanie
Wymagania
DokuWikijestinstalowane w środowisku , precyzyjnie:LAMP
Linux
Apache
PHP 5
DokuWikiprzechowuje dane obok kodu -musimieć prawado
zapisu.
Przygotowanie kodu aplikacji
1. Utwórz katalogdlaprojektu
2. Pobierz
3. Rozpakuj go do katalogu public
DokuWiki
Box’y
Boxyto szablonymaszyn.
Udostępniamyje w sieci.
Sąprzechowywane w katalogu .vagrantużytkownika(nie
wersjonujemygo).
Podczas inicjalizacjinowej maszyny, box jestpobieranyz sieci
(jeżelinie był wcześniej pobrany), anastępnie kopiowanydo
katalogu .vagrantw projekcie ikonfigurowany.
Wybór BOX'a
Dwie drogi:
tworzysz sam,
szukasz gotowego,
Dwanarzędzia:
-wspomagatworzenie własnych box'ów,
-zbiór gotowych rozwiązań.
Veewee
VagrantCloud
Inicjalizacja projektu
Zainicjalizuj Vagrantdlaprojektu
vagrantinithashicorp/precise64
Zainicjalizuj Git'a
gitinit
gitstatus
gitaddVagrantfile
gitcommit-m"Initialcommit"
Edycja Vagrantfile
1. Forwarded port
2. Synced folder
3. Provisioning
#-*-mode:ruby-*-
#vi:setft=ruby:
VAGRANTFILE_API_VERSION="2"
Vagrant.configure(VAGRANTFILE_API_VERSION)do|config|
config.vm.box="hashicorp/precise64""
config.vm.network"forwarded_port",guest:80,host:8080
config.vm.synced_folder"./public","/var/www",id:"vagrant-root",
owner:"vagrant",
group:"www-data",
mount_options:["dmode=775,fmode=664"]
config.vm.provision"shell",path:"install.sh"
end
Shell provisioning
Utwórz plik install.shw katalogu głównym projektu.
touchinstall.sh
Uruchom maszynę
vagrantup
Włącz tryb sanbox
vagrantsandboxon
Shell provisioning
Przygotuj provisioningedytując plik install.sh
Uruchom provisioning
vagrantprovision
Przeładuj środowisko jeżeli modyfikowałe ś Vagrantfile
vagrantreload
Zaakceptuj lub odrzuć zmiany
vagrantsandboxcommit
vagrantsandboxrollback
install.sh
#Updatepackageslist
sudoapt-getupdate
#Installrequiredsoftware
sudoapt-getinstall-yphp5apache2libapache2-mod-php5php5-curlphp5-gd
#ChangedefaultApacheandPHPconfiguration-showerrors
sed-i"s/error_reporting=.*/error_reporting=E_ALL/"/etc/php5/apache2/php.ini
sed-i"s/display_errors=.*/display_errors=On/"/etc/php5/apache2/php.ini
sed-i's/AllowOverrideNone/AllowOverrideAll/'/etc/apache2/apache2.conf
#RestartApache
sudoserviceapache2restart
Shell provisioning
Wyłącz tryb sanbox
vagrantsandboxoff
Testy
Przetestuj przygotowane środowisko
vagrantdestroy
vagrantup
Koniec :)
Częścidrugiej
Vagrant w moim projekcie
Tradycyjne środowisko dlaPHP (Linux Apache MySQL PHP)
VagrantCloud -ACentOS 6.4 installation with LAMP stack
Nietypowakonfiguracja,testynowych rozwiązań
Nginx, HHVM, Redis, RabbitMQ, ...
Skorzystaj z PuPHPet
Własne środowisko,szyte namiarę
VagrantCloud - OfficialUbuntu Server 14.04 LTS (Trusty
Tahr) builds
Dziękuję!

Contenu connexe

Tendances

Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkitbartosz_w
 
Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska
Automatyzacja tworzenia maszyn wirtualnych Magdalena WojnarowskaAutomatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska
Automatyzacja tworzenia maszyn wirtualnych Magdalena WojnarowskaWomen in Technology Poland
 
Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxDawid Rusnak
 
Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.
Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.
Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.Meet Magento Poland
 

Tendances (8)

Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska
Automatyzacja tworzenia maszyn wirtualnych Magdalena WojnarowskaAutomatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska
Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska
 
Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/Redux
 
PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?
 
Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?
 
Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.
Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.
Maciej Rudnicki: Zautomatyzowane środowisko deweloperskie.
 
Websockety w PHP
Websockety w PHPWebsockety w PHP
Websockety w PHP
 
GlusterFS
GlusterFSGlusterFS
GlusterFS
 

Similaire à Vagrant workshop

Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoZastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoDominik Szopa
 
Devbox - wirtualne środowisko pracy
Devbox - wirtualne środowisko pracyDevbox - wirtualne środowisko pracy
Devbox - wirtualne środowisko pracyMarek Bleschke
 
Vagrant - RuPy Tuesday
Vagrant - RuPy TuesdayVagrant - RuPy Tuesday
Vagrant - RuPy TuesdayGaldoMedia
 
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaWebpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaMarcin Gajda
 
[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)Jaroslaw Sobel
 
Deployment kodu z Capistrano
Deployment kodu z CapistranoDeployment kodu z Capistrano
Deployment kodu z CapistranoMichał Szajbe
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Wojciech Klocek
 
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aUruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aLaravel Poland MeetUp
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...HighSolutions Sp. z o.o.
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linuxbm9ib2r5
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
 
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) Laravel Poland MeetUp
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPLaravel Poland MeetUp
 
Joomla Day Poland 15 - Docker
Joomla Day Poland 15 - DockerJoomla Day Poland 15 - Docker
Joomla Day Poland 15 - DockerLukas Lesniewski
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendiumTomasz Dziuda
 

Similaire à Vagrant workshop (20)

Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoZastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
 
Devbox - wirtualne środowisko pracy
Devbox - wirtualne środowisko pracyDevbox - wirtualne środowisko pracy
Devbox - wirtualne środowisko pracy
 
Vagrant - RuPy Tuesday
Vagrant - RuPy TuesdayVagrant - RuPy Tuesday
Vagrant - RuPy Tuesday
 
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaWebpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
 
[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)
 
Deployment kodu z Capistrano
Deployment kodu z CapistranoDeployment kodu z Capistrano
Deployment kodu z Capistrano
 
WordPress dla początkujących
WordPress dla początkującychWordPress dla początkujących
WordPress dla początkujących
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!
 
PartitionMagic. Ćwiczenia
PartitionMagic. ĆwiczeniaPartitionMagic. Ćwiczenia
PartitionMagic. Ćwiczenia
 
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aUruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHP
 
Citrix AppDisks
Citrix AppDisksCitrix AppDisks
Citrix AppDisks
 
Citrix AppDisks
Citrix AppDisksCitrix AppDisks
Citrix AppDisks
 
Joomla Day Poland 15 - Docker
Joomla Day Poland 15 - DockerJoomla Day Poland 15 - Docker
Joomla Day Poland 15 - Docker
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendium
 

Vagrant workshop