Oracle VirtualBox je známé virtualizační prostředí pro platformy linux, mac a windows. Já VirtualBox používám na linux, mám na něm Ubuntu, které používám na školení Subversion nebo na vývoj webových aplikací jako server. Do nedávna jsem to používal na Macu nebo Linux pro běh Windows apod. O tomto používání nechci dnes mluvit.
Vagrant je nástroj napsaný v Ruby, který nám umožňuje modifikovat virtualní stroj podle našich představ pomocí nějakého předpisu, který nám udělá co chceme. Ukážeme si to na příkladu, že připravím linuxový server pro webový vývoj s Apache, PHP5, MySQL, CouchDB.
Začneme instalací Vagrantu
Vytvoříme si ukázkový projekt.
Musíme upravit Vagrantfile podle následujícího předpisu (pro Vagrant 0.7).
Vytvoříme si adresáře pro recepty a pro web.
Do cookbooks je potřeba nakopírovat recepty pro Chef. Doporučuji si vzít z Githubu celou cookbooks repository. git clone https://github.com/opscode/cookbooks.git
protože receptů je hodně, doporučuji si to dám někam mimo a nakopírovat jen potřebné recepty. Pro nás jsou to ty, které jsou v úvodu default.rb a některé navíc jako je třeba erlang pro couchdb.
do adresáře cookbooks jsem si nakopíroval tyto recepty z cookbooks repository.
Potom si vytvoříme vlastní recept, který celou akci Chefa v Vagrantu bude řídit.
Přidáme potřebné recepty
Kromě instalace z receptů provede instalaci některý dalších balíčků v Ubuntu
Vytvoříme si testovací vývojový web.
použije se template uložena v vagrant_main/templates/default/sites.conf.erb a příslušné proměnné
modifikujeme si hosty
přidáme některé knihovny přímo z repository Subversion
nebo Git
a další
Potom je tu script, kterým se dá modifikovat práva pro MySQL, není problém si podobně udělat jakékoliv úpravy.
pro funkční port forwarding u CouchDb modifikovat konfiguraci a potřeba dát po prvním spuštění dát vargant reload aby se tato poslední změna promítla do nastavení virtuálu.
První spuštění pomocí
potom je potřeba pro CouchDb
Kompletní repositář s tímto ukázkovým prostředím jsou dostupné na Githubu.
Pokud si rozbijete virtuál tak není problém začít znovu. Dáte vagrant destroy a potom znovu pustíte celý proces pomocí vagrant up.
Pokud se chcete přihlásit na virtuál použijte vagrant ssh.