Przygotowanie środowiska
Instalacja oprogramowaniaPobierz i zainstaluj aplikacje:
Dodaj vagrant-vbguest - aktualizuje Virtual Box Guest Additions
Dodatkowo, na potrzeby tego warsztatu zainstaluj:
Skonfiguruj Git'a:
VirtualBoxVagrant
vagrant plugin install vagrant-vbguest
Git
git config --global user.email "[email protected]"git config --global user.name "Your Name"
Instalacja oprogramowaniaJeżeli twój katalog domowy, pod Windows, jest na dyskusieciowym (np. za sprawą Active Directory), zadbaj o ustawieniezmiennych środowiskowych
Większość może pominąć ten slajd.
VAGRANT_HOMEVAGRANT_HOME = C:\Users\imie.nazwisko\AppData\Local\Vagrant
VBOX_USER_HOMEVBOX_USER_HOME = C:\Users\imie.nazwisko\AppData\Local\VirtualBox
CLINa potrzeby tego warsztatu będziesz korzystał z linii poleceń:
Windows: Git Bash Linux/Mac OS X: dowolna powłoka
Wsparcie Vagrant w IDEVagrant - Netbeans pluginVagrant Support in PhpStorm
Praca z projektem
ProjektSerwis informacyjny oparty o Wordpress, środowisko uruchomieniowe: LAMP.
Zaczynamy!Pobierz kod
git clone https://github.com/wojtekk/vagrantpress.git
Uruchom środowiskocd vagrantpressvagrant up
Otwórz w przeglądarce:
Keep calm and go to work!
localhost:8080
SSHDostęp do maszyny po SSH
vagrant ssh
SSH ‐ PuttyKlucz prywatny (OpenSSH) znajdziesz w pliku:
insecure_private_key
w katalogu domowy Vagrant, domyślnie:%USERPROFILE%/.vagrant.d lub %VAGRANT_HOME%
Konwertuj klucz OpenSSH do formatu klucza prywatnego Puttykorzystając z :PuTTYgen
Conversion \ Import Save private key
Utwórz połączenie w Putty:vagrant@localhost:2222
Status maszynPojedynczej
vagrant status
Wszystkichvagrant global-status
Vagrant BoxLista
Dodanie
Usunięcie
Sprawdzenie aktualności
Aktualizacja
vagrant box list
vagrant box add <user/box>vagrant box add <url>
vagrant box remove <name>
vagrant box outdated
vagrant box update
Vagrant PluginsLista
Dodanie
Usunięcie
Aktualizacja
vagrant plugin list
vagrant plugin install <name>
vagrant plugin uninstall <name>
vagrant plugin update
Kończymy!Kończąc prace możesz maszynę:
uśpić
wyłączyć
zniszczyć
vagrant suspend
vagrant halt
vagrant destroy
Koniec :)Części pierwszej
Nowy projekt
Przygotowanie maszyny1. Szukasz gotowca w sieci np. na GitHub, Google 2. Korzystasz z GUI które pozwalają wyklikać konfigurację3. Szuka box'a który ma wymagane oprogramowanie 4. Przygotowujesz maszynę samodzielnie
Kompletny BoxSzukasz box'a z wymaganym oprogramowaniem na:
vagrantcloud.com
Kompletny box z LAMPZainicjalizuj box
vagrant init smallhadroncollider/centos-6.4-lamp
EDYTUJESZ VAGRANTFILEUstaw przekierowanie portów dla apache
Apache korzysta z katalogu /var/www/public - podstawkod
Autor rekomenduje użycie statycznego IP na potrzeby SSL
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 LAMPUruchom maszynę
Otwórz w przeglądarce:
$ mkdir public$ echo "test" > public/index.html
$ vagrant up
localhost:8080
Provisioning
Przygotowanie środowiskaZainstaluj plugin sahara
Obsługa sandbox'ów (snapshoty w VirtualBox)vagrant plugin install sahara
Nowy projektPrzygotuj środowisko dla .DokuWiki
Kroki1. Określ wymagania oprogramowania2. Wybierz lub przygotuj box'a3. Przygotuj konfiguracje środowiska - Vagrantfile4. Przygotuj konfiguracji systemu - provisioning5. Przetestuj przygotowane rozwiązanie
WymaganiaDokuWiki jest instalowane w środowisku , precyzyjnie:LAMP
LinuxApache PHP 5
DokuWiki przechowuje dane obok kodu - musi mieć prawa dozapisu.
Przygotowanie kodu aplikacji1. Utwórz katalog dla projektu2. Pobierz 3. Rozpakuj go do katalogu public
DokuWiki
Box’yBoxy to szablony maszyn. Udostępniamy je w sieci.Są przechowywane w katalogu .vagrant użytkownika (niewersjonujemy go).Podczas inicjalizacji nowej maszyny, box jest pobierany z sieci(jeżeli nie był wcześniej pobrany), a następnie kopiowany dokatalogu .vagrant w projekcie i konfigurowany.
Wybór BOX'aDwie drogi:
tworzysz sam, szukasz gotowego,
Dwa narzędzia: - wspomaga tworzenie własnych box'ów,
- zbiór gotowych rozwiązań.VeeweeVagrant Cloud
Inicjalizacja projektuZainicjalizuj Vagrant dla projektu
vagrant init hashicorp/precise64
Zainicjalizuj Git'agit initgit statusgit add Vagrantfilegit commit -m "Initial commit"
Edycja Vagrantfile1. Forwarded port 2. Synced folder 3. Provisioning
# -*- mode: ruby -*-# vi: set ft=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 provisioningUtwórz plik install.sh w katalogu głównym projektu.
touch install.sh
Uruchom maszynęvagrant up
Włącz tryb sanboxvagrant sandbox on
Shell provisioningPrzygotuj provisioning edytując plik install.sh
Uruchom provisioning
vagrant provision
Przeładuj środowisko jeżeli modyfikowałe ś Vagrantfilevagrant reload
Zaakceptuj lub odrzuć zmianyvagrant sandbox commitvagrant sandbox rollback
install.sh# Update packages listsudo apt-get update
# Install required softwaresudo apt-get install -y php5 apache2 libapache2-mod-php5 php5-curl php5-gd
# Change default Apache and PHP configuration - show errorssed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.inised -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.inised -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
# Restart Apachesudo service apache2 restart
Shell provisioningWyłącz tryb sanbox
vagrant sandbox off
TestyPrzetestuj przygotowane środowisko
vagrant destroyvagrant up
Koniec :)Części drugiej
Vagrant w moim projekcieTradycyjne środowisko dla PHP (Linux Apache MySQL PHP)
Vagrant Cloud - A CentOS 6.4 installation with LAMP stack
Nietypowa konfiguracja, testy nowych rozwiązań
Nginx, HHVM, Redis, RabbitMQ, ... Skorzystaj z PuPHPet
Własne środowisko, szyte na miarę
Vagrant Cloud - Official Ubuntu Server 14.04 LTS (TrustyTahr) builds
Dziękuję!
Recommended