Jak spakować istniejącą maszynę Wirtualną, która nie została utworzona za pomocą polecenia vagrant up?
Zainstalowałem VirtualBox, a następnie zainstalowałem w nim system operacyjny Ubuntu 12.10 Server Base. Zainstalowałem wszystkie rodzaje pakietów php i inne pakiety w nim. Moi znajomi polecili mi użycie Vagrant, abym mógł łatwo udostępnić swoją konfigurację moim kolegom z zespołu.
Ponieważ moja obecna maszyna wirtualna VirtualBox nie została utworzona przy użyciu vagrant up
, nie jestem pewien, jak ją spakować. Dokumentacja w Vagrant mówi o opakowaniu, ale zaczyna od powiedzenia:
Przed przejściem przez resztę tej strony, upewnij się, że wirtualny środowisko jest budowane przez prowadzenie włóczęgi w górę.
W moim przypadku moja istniejąca maszyna wirtualna nie została utworzona przy użyciu Vagrant up.
Jak spakować istniejącą maszynę wirtualną?
9 answers
Ważną rzeczą do uświadomienia sobie (i vagrant docs nie są zbyt jasne w tym) jest to, że istnieją dwa "smaki" opakowań:
- przewodnik po opakowaniach w "getting started" masz na myśli założenie , że rozpocząłeś od pudełka podstawowego vagrant i zainicjowałeś go za pomocą
vagrant up
, czego nie zrobiłeś. Pozwala to na spakowanie wszelkich dostosowań, które wprowadziłeś do podstawowego pudełka vagrant. - jeśli zaczniesz od zera lub z" zwykłego " Virtualboxa VM, tak jak ty, musisz utworzyć Vagrant base box . Powinieneś postępować zgodnie z poradnikiem , który jest oparty na Ubuntu.
Istnieje szczegółowy przewodnik tworzenia pudełek vagrant od podstaw przy użyciu Oracle Enterprise Linux, który może być pomocny. Możesz również spróbować VeeWee .
Alternatywnie możesz zacząć od Ubuntu 12.10 base box i portować swoje dostosowania, w którym to przypadku możesz użyć prostszego pierwszego sposobu opakowanie.
Update
Powyższe odnosi się do Vagrant 1.0. W wersji 1.1 rzeczy nieco się zmieniły, a w szczególności dokumenty zostały przepisane:
- The
vagrant package
polecenie pozwala spakować wszelkie modyfikacje, które zrobiłeś do istniejącego Vagrant base box w taki sam sposób, jak w 1.0. - dokumentacja do tworzenia skrzynek bazowych za pomocą VirtualBox została usunięta w 1.1, ale docs sugerują, że proces został to samo, ale teraz wymagany jest dodatkowy plik
metadata.json
ponieważ Vagrant 1.1 obsługuje wielu dostawców.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-29 23:10:37
Vagrant package --output box_name.box --base " Nazwa maszyny wirtualnej" --vagrantfile Vagrantfile
Upewnij się, że klucze przekierowania portów i SSH są poprawnie skonfigurowane.
To może być dobry przykład: https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-14 18:03:59
Każdy VirtualBox może być zapakowany do Vagrant Base Box (w zasadzie OVA z Vagrantfile
).
Problemy są: maszyna wirtualna nie jest budowana zgodnie z ramkami bazowymi vagrant, jeśli nie udostępniasz jej na vagrantbox.es więc będzie dobrze.
Po prostu zainstaluj vagrant (przez gem lub instalator), uruchom następujące polecenie w folderze VM, aby go spakować .box
Uwaga : dla Vagrant 1.2.x, zalecaną metodą instalacji jest użycie pakietu specyficznego dla systemu operacyjnego. Ruby Gem is NOT dostępne dla 1.2.x.
vagrant package --base ubuntu --output /path/to/ubuntu.box
Pamiętaj, jeśli chcesz podzielić się bazą vagrant z innymi, lepiej przeczytaj dokumenty i przestrzegaj tych zasad, aby ułatwić innym.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 03:32:56
Chociaż nie jest to kompletna odpowiedź, myślę, że możesz uzyskać to, czego potrzebujesz z dokumentacji, która jest dość obszerna. Uważam, że vagrant up
jest tylko wygodnym środkiem do założenia Włóczęgowskiego "pudełka". Istnieje wiele wymagań, aby pudełko było zgodne z Vagrant. Są one opisane tutaj...
Dokumentacja: Vagrant - Base Boxes
Nagie kości potrzebne do pudełka są następujące...
- VirtualBox Dodatki gości dla folderów współdzielonych, przekierowanie portów, itd.
- SSH z obsługą AUTH na podstawie klucza dla użytkownika vagrant
- Ruby & RubyGems do instalacji Chef and Puppet
- kucharz i Kukiełka do obsługi aprowizacji
Gdy skrzynka jest zgodna z tymi wymaganiami, należy po prostu użyć polecenia vagrant package
do stworzenia przenośnej instalacji...
Więcej dokumentacji: Vagrant - Boxes
Więc, chociaż nie mam pełnej odpowiedzi, nigdy nie robiąc tego w ten sposób, myślę, że to możliwe, aby Twoja instalacja osiągnęła stan, który pozwoli Ci ją spakować i rozpowszechnić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-25 15:48:53
Użyj polecenia 'VBoxManage list vms'!Użyłem go z sudo tylko, aby zobaczyć, że nie ma maszyn wirtualnych listed.So użyj polecenia z prawym uwierzytelnionym użytkownikiem.Powyższe odpowiedzi również pomogły w zrobieniu pudełka.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-26 15:41:28
Osobiście iluzorycznym aspektem procesu pakowania był przełącznik --base
. Podejrzewam, że tak może być w przypadku wielu ludzi. Sprawdź vagrant package --help
dla opisu. Dokumentacja również nie wydaje się o niej wspominać.
Znalazłem te dwa świetne, dogłębne Przewodniki krok po kroku do tworzenia pudełek Vagrant z maszyn, które pierwotnie były maszynami VirtualBox:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-13 20:59:38
Jak wspomniano tutaj - http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html Potrzebujesz trzech rzeczy do importowania i pakowania pudełka:
- Zainstaluj Dodatki dla gości
- Bez Hasła sudo
- dostęp SSH Więc wystarczy zalogować się do Ubuntu 12.10, zainstalować dodatki Gości VBOX, dodać użytkownika "vagrant" z dostępem sudo bez hasła.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-18 08:57:39
Spójrz na zaktualizowaną dokumentację, aby znaleźć wszystkie cechy charakterystyczne, które powinna mieć Twoja skrzynka, jeśli chcesz, aby działała bezproblemowo z vagrantem:
Http://docs.vagrantup.com/v2/virtualbox/boxes.html
Powinieneś również przyjrzeć się świetnemu projektowi o nazwie veewee, który pozwala na skrypt generowania vagrant box ze scractcha. Oznacza to, że veewee pobierze ISO z twojej dystrybucji i zainstaluje je na maszynie Virgin virtualbox, a następnie skonfiguruje i zainstaluj wszystkie zależności.
Zawiera wiele przepisów na różne rodzaje dystrybucji Linuksa:
Https://github.com/jedi4ever/veewee
Nadchodzi jeszcze więcej pudełek. Mówią, że są to puppet Boxy, ale działają ze wszystkimi dostawcami (chef, Puppet i Shell script): {]}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-04 09:48:57
Przewodnik po pakowaniu w "Pierwsze kroki", o którym mówisz, zakłada, że rozpocząłeś od pudełka podstawowego vagrant i zainicjowałeś go vagrant up, czego nie zrobiłeś. Pozwala to na spakowanie dowolnych dostosowań, które zrobiłeś, do pudełka podstawowego vagrant.
Jeśli zaczynasz od zera lub od" zwykłej " VirtualBox
maszyny wirtualnej, tak jak to robisz, musisz utworzyć Vagrant base box. Powinieneś być w porządku zgodnie z przewodnikiem, który jest oparty na Ubuntu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-22 11:58:41