web-dev-qa-db-ja.com

Vagrant仮想マシンをエクスポートして転送する方法

Vagrant Boxを起動して実行しています(LAMPスタックで構成されています)。別のPCに転送する必要があります。どうすればエクスポートできますか?別のPCにコピーできるファイルを取得できると思うので、そこでコマンドを実行して、浮浪者ボックスをインポートできます。

97
Eugene

これを行うには、2つの方法があります。dirty wayおよびclean wayと呼びます。

1。 dirtyway

vagrant packageコマンドを使用して、現在の仮想環境からボックスを作成します。

http://docs.vagrantup.com/v2/cli/package.html

次に、ボックスを他のPCにコピーし、vagrant box addを使用して追加し、通常どおりvagrant upを使用して実行します。

作業ディレクトリ(Vagrantfileを持つファイル)のファイルは、仮想マシンの起動時に共有されるため、他のPCにもコピーする必要があることに注意してください。

2。 cleanway

理論的には、Vagrantでエクスポート/インポートを行う必要はありません。仮想環境(chef、puppet、ansible)の設定にプロビジョニングを使用する先見性があり、作業ディレクトリにgitなどのバージョン管理システムがある場合、この時点で環境をコピーするのは簡単です。

git clone <your_repo>
vagrant up
110
Emyl

Macのハードドライブがプロジェクトの途中でビープ音を発していたため、SSDを取り付けることにしました。プロジェクトをあるディスクから別のディスクに移動する必要がありました。考慮すべきいくつかの事項:

  • 私はMacのvirtualboxで放浪しています
  • 私はgitを使用しています

これは私のために働いたものです:

1.) Copy your ~/.vagrant.d directory to your new machine.
2.) Copy your ~/VirtualBox\ VMs directory to your new machine. 
3.) In VirtualBox add the machines one by one using **Machine** >> **Add**
4.) Run `vagrant box list` to see if vagrant acknowledges your machines. 
5.) `git clone my_project`
6.) `vagrant up`

VBゲストの追加にいくつか問題がありました。

enter image description here

私はそれらを修正しました このソリューションで

26
KJ Prince

これは実際には非常に簡単です

  1. リモートマシンに 仮想ボックス および vagrant をインストールします
  2. 浮浪者のマシンをまとめます

    vagrant package --base [machine name as it shows in virtual box] --output /Users/myuser/Documents/Workspace/my.box

  3. 箱をリモコンにコピーします

  4. 実行してリモートマシンのボックスを初期化します

    vagrant init [machine name as it shows in virtual box] /Users/myuser/Documents/Workspace/my.box

  5. vagrant upを実行します

15
Stefan Diabo

最も簡単な方法は、Vagrantボックスをパッケージ化し、それを他のPCにコピー(例:scpまたはrsync)して、追加してvagrant upを追加することです;-)

詳細な手順については、これを確認してください=>既にインストールされている浮浪者の箱を複製する方法はありますか

6
Terry Wang

で述べたように

Vagrantが仮想ハードドライブを探す場所を変更するにはどうすればよいですか?

仮想マシンの状態は、事前定義されたVirtualBoxフォルダーに保存されます。 vagrant-project以外の対応するマシン(フォルダー)を他のホストにコピーすると、仮想マシンの状態が保持されます。

1
Manuel

上記の答えのどれも私にとってはうまくいきませんでした。 Vagrant + VirtualBox Machineをコンピューターから別のコンピューターに移行する方法を2日間取り組んでいます...可能です!

まず、仮想マシンが同期/共有フォルダーから分離されていることを理解する必要があります。したがって、マシンをパックするときは、ファイルなしで、データベースを使用してパックします。

するべきこと:

1-コンピューターのCMDを開く1ホストマシン(コマンドライン。右ボタンで管理者として開く-> "管理者として実行")およびVagrantのインストール済みファイルに移動します。私の場合:C:/ VVV Vagrantfileとこれらのフォルダーが表示されます:

/config/
/database/
/log/
/provision/
/www/
Vagrantfile
...

/ www /フォルダーは、開発フォルダーと同期フォルダーを持っている場所です。他の場所に同期フォルダーがある場合がありますが、自分が何をしているのかを理解してください。また、/ configと/ databaseは同期フォルダーです。

2-このコマンドを実行します:vagrant package --vagrantfile Vagrantfile

(このコマンドは、Vagrantfile構成を使用して仮想マシンのパッケージを実行します。)

コマンドに関するVagrantのドキュメントをご覧ください。

よくある誤解は、--vagrantfileオプションが、このボックスでvagrant initが使用されるときに使用されるVagrantfileをパッケージ化することです。これはそうではありません。代わりに、Vagrantfileがロードされ、ボックスが使用されるときにVagrantロードプロセスの一部として読み取られます。詳細については、Vagrantfileのロード順序についてお読みください。

https://www.vagrantup.com/docs/cli/package.html

終了すると、package.boxファイルが作成されます。

3-これらのすべてのファイルをコピーします(/config、/database、Vagrantfile、package.boxなど)。仮想マシンをインストールしたい(私のケースではD:/ VVV)。

これで、コンピューター2ホストに必要なすべてのコピーができました。

4-これを実行:vagrant box add package.box --name VVV

(--nameは仮想マシンに名前を付けるために使用されます。私の場合はVVVという名前です)(この名前の仮想マシンが既にあり、それを上書きする場合は--forceを使用できます。(慎重に使用してください!))

これにより、新しいVagrant Virtual Machineが解凍されます。

5-終了したら、次を実行します:vagrant up

マシンがインストールされ、「Oracle Virtual Machine Box Manager」に表示されます。仮想マシンが表示されない場合は、Oracle VMボックスを管理者として実行してみてください(右クリック->管理者として実行)

これですべてが正常になりましたが、ホストが期待どおりかどうかを確認することを忘れないでください

c:/windows/system32/hosts

6-ホストファイルをコンピューター1からコンピューター2にコピーすることをお勧めします。または、必要な行をコピーします。私の場合、これらは必要なホストです。

192.168.50.4 test.dev
192.168.50.4 vvv.dev
...

192.168.50.4は仮想マシンのIPであり、test.devとvvv.devはホストを開発しています。

これがあなたのお役に立てば幸いです:)ご意見をお寄せいただければ幸いです。

あなたが見つけるかもしれない私のケースのいくつかの特殊性:

Vagrantを実行すると、mysqlに問題があり、機能していませんでした。仮想サーバーで実行する必要がありました(Oracle仮想マシンを右クリック->コンソールを表示):apt-get install mysql-server

この後、私は再び気まぐれに走り、すべてが機能していましたが、データベースにデータがありませんでした。そこで、コンピューター1からmysqldump all-tablesを実行し、コンピューター2にアップロードしました。

その他の注意事項:仮想マシンはコンピューター1とコンピューター2に正確にはありません。サーバー同期フォルダーを設定します)、コンピューター2ホストでこのコマンドを再度実行する必要がありました:vagrant plugin install vagrant-winnfsd

1
gtamborero

2019年現在、サブコマンドがあります:vagrant box repackage

vagrant box repackage --help 
Usage: vagrant box repackage <name> <provider> <version>
    -h, --help                       Print this help

vagrant box listを実行すると、nameproviderおよびversionを見つけることができます

vagrant box list
macinbox (virtualbox, 10.14.5)

vagrant box repackageの出力はpackage.boxと呼ばれるファイルです。これは基本的にtgzファイルであり、コンテンツは以下のようにリストできます。

tar tzf package.box
./metadata.json
./box.ovf
./Vagrantfile
./box-disk001.vmdk
0
Tiago Lopo