Why Vagrant is so cool ?

Nie raz potrzebowałem postawić na szybko środowisko do testu albo dla nowego developera w zespole. Patrząc z perspektywy czasu zmarnowałem sporo czasu na instalację i konfigurację według tego samego schematu bo… nigdy nie było czasu żeby coś poprawić w procesie.

Pewnego dnia jeden z “pehapowców” w firmie dorabiał małą integrację do api które wystawialiśmy dla klienta, miał jakieś pytania więc postanowiłem podejść i zobaczyć w czym problem. Przy okazji zobaczyłem że używa jakiejś “magii”. Okazało się ze to jest Vagrant i opcja współdzielenia katalogów pomiędzy systemem a wirtualną maszyną, edycja jednego pliku, save i wynik od razu na dwóch różnych instancjach apache zdeployowony. Eh szkoda że to w javce nie przejdzie tak łatwo, ale to się jeszcze okaże 😀

Aby zacząć z Vagrantem wystarczy zainstalować cel zainteresowań:  https://www.vagrantup.com/downloads.html i do tego coś do wirtualizacji, ja wybrałem VirtualBoxa: https://www.virtualbox.org/wiki/Downloads.

Istotne jest wersjonowanie konfiguracji vagranta razem z naszym projektem, dzięki temu każdy z developerów może nanosić poprawki czy rozszerzać konfigurację naszego boxa. Pora zacząć:

Kilka minut i mamy gotową do użytku,  uruchomioną instancję “gołego” systemu.  Oczywiście nie musisz używać Ubuntu, Vagrant udostępnia sporą bibliotekę obrazów przygotowanych przez innych, każdy znajdzie coś dla siebie . W katalogu w którym wykonaliśmy powyższe polecenia vagrant stworzył plik o nazwie Vagrantfile zawiera on podstawową konfigurację z zakomentowanymi opcjami. Istotniejsze z nich to :

pozwalająca na dostęp do virtualki dla innych urządzeń w sieci, oraz włączająca pobranie adresu ip z serwera dhcp

ustawienie ilości dostępnej pamięci

Ustawienie współdzielonych katalogów, pierwsza ścieżka prowadzi do katalogu hosta, druga do katalogu na wirtualnej maszynie.

I chyba najważniejsza opcja pozwalająca na przygotowanie poleceń które mają wykonać się po uruchomieniu systemu:

Teraz pozostaje nam dodać plik “bootstap.sh” w tym samym katalogu:

Plik ten zawiera zestaw poleceń które mają wykonać się po uruchomieniu systemu. Gdy dodamy w nim wszystkie pożądane komendy możemy przeładować naszą konfiguracje za pomocą:

Możemy się cieszyć działającym boxem, ale gdy nie będzie nam już wiecej potrzebny wystarczy użyć polecenia:

i w ten sposób wszystkie zasoby używane do jego działania zostają zwolnione, jednak gdy chcesz tylko maszynę wyłączyć bo będzie jeszcze używana skorzystaj z polecenia:

 

Odpowiadając na zadane wcześniej pytanie, dlaczego Vagrant jest taki fajny ?

Bo pozwala oszczędzić masę czasu potrzebnego na uruchomienie n’tej instancji identycznego środowiska. Wystarczy raz przygotować konfigurację i to tyle, a odporność na zmiany w konfiguracji ? Zmieniamy pliki vagranta, wrzucamy nowszą wersję do repozytorium i już inni mogą zacząć z niej korzystać.

A już niebawem o Apache Kafka i dlaczego Vagrant to za mało 😉

 

Leave a Reply

Your email address will not be published. Required fields are marked *