Używam VirtualBox od wielu lat do tworzenia środowiska programistycznego.
Wielu moich kolegów mówi o Vagrant i wiele osób wydaje się bardzo podekscytowanych, ale po prostu nie mogę pojąć korzyści z tego. Wydaje mi się, że jest to seria nowych poleceń do nauczenia się, aby zrobić to samo rzeczy, które zrobiłem z Virtualbox.
Dzięki VirtualBox idealnie instaluję i konfiguruję środowisko, a następnie mogę spakować je jako OVA lub cokolwiek innego i udostępnić je innym użytkownikom biurowym. Możesz zrobić migawkę w VirtualBox, jeśli coś pójdzie nie tak.
Marionetka i szef kuchni tak naprawdę nie są częścią Vagrant, to ich własna sprawa, prawda?
Więc tak, jakie korzyści oferuje Vagrant w porównaniu z VirtualBox na własną rękę?
virtualbox
vagrant
John Hunt
źródło
źródło
Odpowiedzi:
To duże pytanie, więc podzielę je na trzy części.
Włóczęga
Vagrant służy do konfigurowania jednej lub więcej maszyn wirtualnych poprzez:
Pamiętaj, że nie instaluje oprogramowania ani nie konfiguruje komputera po załadowaniu maszyny wirtualnej i ustawieniu ustawień VirtualBox. Pomyśl o tym jak o silniku skryptowym dla VirtualBox.
Oto kilka powodów, dla których widziałem używanie Vagrant tylko w VirtualBox.
1. Skonfiguruj sieci wielu maszyn wirtualnych z łatwością
Większość treści Vagrant dla zaawansowanych użytkowników, które przeczytałem, dotyczy konfigurowania wielu maszyn wirtualnych jednocześnie. Vagrant daje ci jeden plik konfiguracyjny, aby je skonfigurować, umożliwiając uruchomienie ich wszystkich za pomocą jednego polecenia.
Załóżmy, że skonfigurowałeś trzy maszyny wirtualne do pracy w sieci za pomocą statycznych adresów IP w podsieci 192.168.1. *. Znajdujesz się w lokalizacji, która już używa tej podsieci do rozdawania adresów IP, a Twoje maszyny wirtualne są teraz w konflikcie. Za pomocą Vagrant możesz po prostu edytować plik Vagrant i ponownie załadować maszyny wirtualne, podczas gdy w VirtualBox będziesz musiał otworzyć ustawienia dla każdej maszyny wirtualnej, jeśli nie uruchomisz każdej maszyny wirtualnej i zmienisz ją w środku.
2. Kontrola źródła
Umieszczając ustawienia w pliku tekstowym, można poddać konfigurację kontroli źródła. Wprowadziłeś jakieś zmiany w zeszłym tygodniu i przypadkowo złamałeś obraz? Wystarczy przywrócić zmiany i ponownie załadować maszynę wirtualną. Możesz to zrobić za pomocą migawek VirtualBox, ale zajmie to znacznie więcej miejsca niż zwykły plik Vagrantfile.
3. Różne platformy
Na stronach takich jak http://vagrantbox.es dostępna jest duża liczba skrzynek . Pozwala to wypróbować różne systemy operacyjne lub dystrybucje, stosując to samo zaopatrzenie w celu skonfigurowania podobnych środowisk. Może to pomóc w testowaniu lub dodawaniu wsparcia do nowych platform, a korzystanie z VirtualBox byłoby czasochłonne.
Istnieje wiele argumentów przemawiających za użyciem oprogramowania do obsługi administracyjnej, a także za pomocą migawek obrazów. W celu dalszej dyskusji wskażę doskonały artykuł Stephena Nelsona-Smitha Jak zbudować 100 serwerów WWW w ciągu jednego dnia .
źródło
vmrun
polecenia oferowanego przez VMware, nawet zmiany adresu IP lub uruchomienie skryptu w maszynie gościa!vmrun
do kontrolowania tego. Zawsze korzystałem z VirtualBox, a zatem nie mam doświadczenia z backendem VMWare.VboxManage
polecenie? virtualbox.org/manual/ch08.html Prawie wszystko, o czym wspomniałeś, można utworzyć jako skrypt, przekazując konkretny parametr ip / dovboxmanage controlvm
podobnego polecenia w skrypcie powłoki, a następnie kontrolując wersję tego ... Więc jak tovagrant
poprawićvirtualbox
?Oprócz doskonałej odpowiedzi udzielonej przez Adama, Vagrant wiąże wszystko razem. Chociaż Chef i Puppet (oraz skrypty Soli i powłoki oraz cokolwiek innego dostawcy, którego chcesz użyć) to osobne rzeczy, Vagrant wiąże to wszystko razem i sprawia, że działa tylko z
vagrant up
.To jedno polecenie
Nie musisz o tym myśleć. Załóżmy, że zmieniasz projekt na inny, rozpoczęty przez współpracownika. Wystarczy
vagrant up
pobrać kod z repozytorium i uruchomić , nie martwiąc się o pobieranie plików ISO lub instalowanie czegokolwiek, ani zastanawianie się, której wersji dystrybucji należy użyć dla tego konkretnego klienta lub czy masz kopię maszyny wirtualnej, która już ma wszystko potrzebujesz.Nie musisz się nawet martwić, czy skonfigurowali coś za pomocą Chef lub Puppet, czy po prostu skryptów powłoki. (Okej, więc możesz potrzebować zrobić
bundle install
lub w inny sposób upewnić się, że masz wszystko zainstalowane, ale nadal nie jest to wielka sprawa.)Dzięki powiązaniu wszystkiego i zapewnieniu zunifikowanego interfejsu do tego wszystkiego, może znacznie ułatwić wszystkie przypadki użycia z wyjątkiem najprostszych zastosowań. Na początku możesz mieć wrażenie, że dopiero zaczynasz poznawać nowy sposób robienia tego, co już robisz, ale gdy wejdziesz głębiej w Vagrant, odkryjesz, że możesz zrobić znacznie więcej przy znacznie mniejszym wysiłku. Będzie to warte początkowej inwestycji czasu.
źródło
Kluczowa jest umiejętność integracji szefa kuchni lub marionetki z obsługą administracyjną maszyn wirtualnych. Większość użytkowników Vagrant powie ci, że uruchamiają „włóczęgowskie zaopatrzenie” i czasami „włóczęgowskie przeładowanie” znacznie częściej niż „włóczęgowskie ładowanie” lub „włóczęgowskie niszczenie”. Te zadania wskazują, że prawdziwą pracą nie jest wirowanie w górę / w dół maszyn wirtualnych, ale „zarządzanie” nimi po fakcie.
Aby zadać lepsze pytanie (w każdym razie sprawni użytkownicy Chef), może być dlaczego używać Vagrant, a nie nóż z odpowiednią wtyczką (za chwilę dostanie się do wtyczki virtualbox)? Na przykład przekazywanie wartości argumentów przechowywanych w torbie danych do wtyczki noża jest (o wiele) bardziej inteligentne, elastyczne i łatwiejsze do zarządzania niż żonglowanie jednym gigantycznym plikiem Vagrantfile. Zazwyczaj definiuję moje „dynamiczne” zasoby, takie jak liczba procesorów, ilość pamięci, którą system operacyjny wdrożyć, nazwa hosta, adres IP, trasy itp. W kartach danych szefa kuchni, tak że nie muszę ciągle zmieniać przepisu; - ). Edycja znacznika danych za pośrednictwem interfejsu internetowego szefa kuchni jest naprawdę łatwym zadaniem do wprowadzania danych, które mogę wykonać dla większości młodszych operatorów. Dzięki Vagrantfile, twojemu na zawsze modyfikującemu kodowi i wierz w to lub nie - łamie kod - co właściwie gwarantuje, że NIE będziesz przekazywał prostych zmian personelowi Operacji,
Oprócz tego, że nóż nie ma jeszcze wtyczki do virtualboksa (choć przewiduję jedną w niezbyt odległej przyszłości), istnieją już wtyczki do większości produktów do wirtualizacji „korporacyjnych”, w tym vmware, xenserver i prawie każdej większej „chmury” dostawca również. Oznacza to, że nóż jest znacznie lepszy od tego, co oferuje Vagrant, jeśli / kiedy jesteś gotowy, aby wyjść poza wirtualną skrzynkę. Na razie społeczność szefów kuchni wydaje się zadowolona, że użytkownicy Virtualbox utykają razem z Vagrantem, nie integrując aplikacji virtualbox apis z wtyczką noża. Istnieje plugawe narzędzie, które pozwala na wykorzystanie worków danych do przekazywania argumentów. Ale nadal wymaga błędnego oprogramowania i jego monolitycznego pliku Vagrantfile do działania.
Więc wychodzę na kończynę i mówię, że włóczęga zdecydowanie NIE jest „lepszy” niż szef kuchni z nożem; ale jest to konieczne (na razie), jeśli nalegasz na wirtualną skrzynkę i być może łatwiejsze niż zarządzanie szefem kuchni z workami danych, pod warunkiem, że masz dość proste środowisko do zarządzania.
źródło
Oto dwa kolejne przypadki użycia przez programistów, które włóczęga upraszczają (w stosunku do „zwykłego” VirtualBox). Nie widziałem tych przypadków użycia, które zostały przywołane w poprzednich odpowiedziach.
Vagrant pomaga utrzymać platformy rozwojowe i produkcyjne jak najbliżej siebie. W idealnym świecie zaopatruje się środowisko produkcyjne w SAME skrypty używane do obsługi maszyny wirtualnej Vagrant, minimalizując niespodzianki podczas wdrażania.
Testy integracyjne i ciągła integracja: Vagrant jest łatwy do kontrolowania na podstawie testów, a zatem całe stosy na wielu maszynach można łatwo kontrolować za pomocą narzędzi takich jak Jenkins podczas wykonywania testów.
Tak, tutaj można również użyć „zwykłego” VirtualBox - ale konwencje używane przez włóczęgę ułatwiają konfigurowanie tych scenariuszy.
źródło
Vagrant streszcza maszyny wirtualne, dzięki czemu można łatwo przełączać implementacje maszyn wirtualnych. Możesz przełączyć się z Virtual Box na AWS lub Digital Ocean. To jak używanie SQL zamiast języka zapytań specyficznych dla bazy danych.
Vagrant pozwala programistom szybko skonfigurować środowisko za pomocą tylko jednego polecenia i jest dokładnie takie samo jak wszystkich innych. Jest to ważne w dużych firmach, w których programiści często przychodzą i odchodzą. Może to skrócić czas konfiguracji z 3 dni do 1 godziny.
+ Co powiedział Adam.
(Nadal nie znalazłem zastosowania dla szefa kuchni lub marionetki ...)
źródło