Prskavčí blog

Feb 2, 2011

Vytváření vývojového Virtuálního prostředí pomocí VirtualBoxu a Vagrantu

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.