Vagrant EuroLinux

Ogólnodostępne obrazy vagrantowe od EuroLinux

Vagrant jest jednym z najpopularniejszych narzędzi w świecie DevOps. Pozwala na błyskawiczne tworzenie i zarządzanie maszynami wirtualnymi lub kontenerami, które pochodzą z zadanego wzorca (boxa). Dzięki takiemu podejściu nie występuje konieczność przeprowadzania długiej i nużącej instalacji systemu.

Vagrant jest jednym z najpopularniejszych narzędzi w świecie DevOps. Pozwala na błyskawiczne tworzenie i zarządzanie maszynami wirtualnymi lub kontenerami, które pochodzą z zadanego wzorca (boxa). Dzięki takiemu podejściu nie występuje konieczność przeprowadzania długiej i nużącej instalacji systemu. Na dodatek wykorzystując tzw. pudełko (box), za każdym razem startujemy z dokładnie tego samego stanu maszyny. Daje to dodatkową stabilizację i może pomóc we wprowadzeniu koncepcji, takiej jak infrastructure as the code czy immutable infrastructure, mimo iż jest ona kojarzona raczej z kontenerami.

Następnym krokiem po uruchomieniu maszyny lub kontenera jest tzw. provisioning (przygotowanie systemu, jego usług i ustawień). Vagrant wspiera provisioning przy pomocy wszystkich popularniejszych narzędzi. Należy tutaj wymienić choćby Ansible, Salt, Chef, Puppet czy stare dobre skrypty powłoki.

Warto też nadmienić, że wszystko to zamyka się z reguły w jednym pliku, którym jest Vagrantfile. Osoby znające Dockera od razu zrozumieją identyczną ideę (Dockerfile), którą jest trzymanie konfiguracji maszyny, systemu czy kontenera w pliku. Plik ten dosłownie nazywa się Vagrantfile i oprócz podstawowych ustawień czy provisoningu, może mieć także specjalistyczną konfigurację maszyny, jak na przykład dodatkowe interfejsy sieciowe, ilość dostępnej pamięci oraz ilość CPU. Na deser należy wspomnieć o tworzeniu folderu zsynchronizowanego z lokalnym katalogiem, w którym maszyna została uruchomiona.

Najbardziej podstawowy Vagrantfile musi zawierać informację o boxie (pudełku, wzorcu), który zostanie wykorzystany. Przykładowo:

Vagrant.configure("2") do |config|
  config.vm.box = "eurolinux-vagrant/eurolinux-7"
end

Jest to identyczny zabieg jak komenda „FROM:” występująca w Dockerfile.

W większości przypadków boxy są pobierane z usługi Vagrant Cloud. Gdy box jest pobierany za pierwszym razem, tworzona jest lokalna kopia, która później jest wykorzystywana jako wzorzec dla następnych maszyn. Pozwala to na szybsze tworzenie nowych systemów i oszczędza łącze. W przypadku istnienia nowszej wersji jest ona automatycznie pobierana dopiero przy tworzeniu nowej maszyny wirtualnej/kontenera. Można oczywiście zablokować wersję poprzez dodanie do Vagrantfile informacji config.vm.box_version.

Poniżej przykład takiego rozwiązania:

Vagrant.configure("2") do |config|
  config.vm.box = "eurolinux-vagrant/eurolinux-6"
  config.vm.box_version = "6.10.1"
end

Obrazy EuroLinuksowe w Vagrant Cloud

W firmie EuroLinux wykorzystujemy Vagranta od niemal samego początku naszego istnienia. Co więcej, część naszych klientów korzysta w swoich środowiskach ze specjalnie przygotowywanych dla nich obrazów. W tym miesiącu firma EuroLinux postanowiła wypuścić publicznie obrazy EuroLinuksa oraz innych systemów z rodziny Enterprise Linux. Są one udostępniane przez użytkownika eurolinux-vagrant https://app.vagrantup.com/eurolinux-vagrant w usłudze Vagrant Cloud.

Bezpośrednie linki do stron obrazów:

Obrazy EuroLinuksa, w przeciwieństwie do pozostałych, nie posiadają włączonych repozytoriów, gdyż zostały stworzone z myślą o użytkownikach posiadających nielimitowaną licencję lub/oraz lokalnego EuroMana.

Jedną z głównych zalet korzystania z gotowych obrazów dostarczanych przez producentów komercyjnego Open Source’a są ich regularne aktualizacje. W przypadku omawianych powyżej obrazów mówimy o comiesięcznej aktualizacji. Czas ten jest kompromisem pomiędzy zbyt częstymi aktualizacjami a zwiększonym bezpieczeństwem.

Kilka szczegółów technicznych

Hasło na użytkownika root to vagrant.
Hasło na użytkownika vagrant to vagrant.
SSHD pozwala na logowanie po haśle, także na użytkownika roota.
Obrazy posiadają przestrzeń wymiany.
Obrazy mają domyślnie włączony mechanizm kdump.
Obrazy posiadają SELinuksa działającego w trybie wykonywania reguł (ang. enforcing).

Zgłaszanie uwag

Obrazy generowane przez EuroLinux tworzone są w tak zwanym potoku. W celu zapewnienia najwyższej jakości znajdują się w nim etapy, odpowiedzialne za testy boxów. Niemniej, może się zdarzyć, iż niektórzy będą mieć uwagi lub propozycje dotyczące zamieszczonych obrazów. Dlatego też zostało utworzone publiczne repozytorium https://github.com/EuroLinux/vagrant-boxes-rfc, gdzie można zgłaszać sugestie oraz ewentualne bugi. Jego otwartość pomaga tworzyć publiczny i, co nie mniej ważne, jawny proces wprowadzania zmian w obrazach.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.