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ą?

Author: Steffen Opel, 2013-01-24

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ń:

  1. 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.
  2. 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:

  1. 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.
  2. 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.
 25
Author: kynan,
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

 9
Author: aminalid,
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.

 7
Author: Terry Wang,
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ć.

 4
Author: Gordon Freeman,
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.

 2
Author: user3464976,
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:

  1. Jak stworzyć bazę CentOS Vagrant
  2. Tworzenie bazy pudełko od podstaw dla włóczęgi
 1
Author: Batandwa,
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.
 1
Author: david,
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): {]}

Https://github.com/puppetlabs/puppet-vagrant-boxes

 0
Author: fe_lix_,
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.

 0
Author: kumae,
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