Szybka instalacja serwerów wirtualnych – Vagrant

Vagrant – błyskawiczne serwery w wirtualnej piaskownicy

UWAGA: Artykuł zakłada znajomość podstaw Linuksa i działania serwerów

Standardowa droga instalacji wirtualnego serwera na naszym komputerze wygląda mniej więcej tak:

  • ściągnięcie instalki systemu serwerowego w postaci iso:  2-5 min. (ok. 600MB)
  • utworzenie i konfiguracja nowego systemu wirtualnego na Virtual Box: 3 min.
  • uruchomienie i przeprowadzenie instalacji serwera: 10-20 min.
  • uruchomienie serwera i aktualizacja systemu: 10-20 min.

W efekcie potrzebujemy co najmniej ok. 25-50 minut, żebyśmy mogli zacząć się bawić serwerem. Jak coś zepsujemy i chcemy przeinstalować system, będzie trochę krócej, bo nie trzeba ściągać instalki i konfigurować Virtual Box, ale i tak wszystko zajmie nam to co najmniej 20 min. A co gdybyśmy mogli poświęcić tylko 1 minutę aktywnej pracy i pozostałe 5-10 min. oczekiwania, podczas którego możemy zająć się czymś innym, żeby mieć gotowy serwer z najnowszymi pakietami? Vagrant jest właśnie takim narzędziem, które umożliwia nam szybkie stawianie skonfigurowanych wirtualnych serwerów. Jak to działa?

    1.  Jak nie masz, zainstaluj program Virtual Box z host-modules
    2.  Zainstaluj Vagrant, przykładowo dla Manjaro i Arch’a: sudo pacman -S vagrant, dla Ubuntu: sudo apt install vagrant
    3. Stwórz katalog dla pliku konfiguracyjnego i logów vagrant, cd do tego katalogu.
    4. Stwórz plik konfiguracyjny serwera, dla Ubuntu Serwer 16.04: vagrant init ubuntu/xenial64
    5. Pierwsze uruchomienie z instalacją: vagrant up (może potrwać 5-10 min.)
    6. Sprawdzenie stanu serwera: vagrant status
    7. Zarządzenie stanem:
      – wyłącznie: vagrant halt
      – zatrzymanie: vagran suspend
      – start lub wznowienie: vagrant up
      – restart: vagrant reload
    8.  Logowanie się do systemu: vagrant ssh

    Wszystkie komendy robimy z lokacji z plikiem konfiguracyjnym. Dla sprawdzenia jakie systemy można zainstalować przez Vagrant:

    https://atlas.hashicorp.com/boxes/search?_ga=1.13774270.861176598.1490348395

    Ustawienia można zmieniać edytując plik konfiguracyjny Vagrantfile, który tworzy się po uruchomieniu komendy init. Zawiera on zakomentowane opisy przykładowych ustawień, więc nie powinno być problemu z jego edycją. Vagrant od razu ustawia skonfigurowane współdzielenie plików z systemem gospodarzem w katalogu, gdzie znajduje się Vagrantfile, natomiast na serwerze plik będzie zamontowany w katalogu /vagrant.

    Do poprawnego działania schowka wersja virtualbox guest additions na vagrant powinny się zgadzać z wersją virtualboxa na systemie gospodarza. Jeśli podczas startu systemu z vagrant widzisz np. komunikat:

    The guest additions on this VM do not match the installed version of
    VirtualBox! In most cases this is fine, but in rare cases it can
    prevent things such as shared folders from working properly. If you see
    shared folder errors, please make sure the guest additions within the
    virtual machine match the version of VirtualBox you have installed on
    your host and reload your VM.
    Guest Additions Version: 5.0.32
    VirtualBox Version: 5.1

    można to łatwo naprawić. Wyłącz system vagrant halt. Uruchom komendę vagrant plugin install vagrant-vbguest . Uruchom system vagrant up. Od tej pory wersje powinny się zgadzać i będziesz widzieć zamiast poprzedniego komunikatu poprawny, czyli np. GuestAdditions 5.1.18 running — OK.

    Usunięcie zainstalowanego wirtualnego systemu przeprowadzamy za pomocą vagrant destroy. Kolejna instalacja poprzez vagrant up zajmuje już… tyle co start systemu, czyli ok. 1 minuty! Tym razem pliki aktualne są ściągnięte, więc przeinstalowanie wirtualnego serwera jest błyskawiczne!

    Przy używaniu vagrant musicie pamiętać, że domyślnie przekierowuje on porty ssh do 2222 a http do 8080! Żeby uniknąć różnych kłopotów z tym związanych polecam dodanie odkomentowanie w Vagrantfile tej linijki:

    config.vm.network „private_network”, ip: „192.168.33.10”

    a potem: vagrant reload

    Powoduje to dodanie prywatnej sieci, w której gospodarz i gość (serwer) mogą się komunikować. Jeśli uruchamiasz więcej serwerów niż jeden, każdy z nich powinien mieć unikalne IP.

    Nginx czy apache powinny teraz działać poprawnie na adresie 1192.168.33.10

    Dokumentacja Vagrant:

    https://www.vagrantup.com/docs/

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *