Vagrant Boxをローカルにコピー


27

VirtualBoxで実行されているvagrant boxがあり、コピーを(既存のすべての構成とデータとともに)作成する必要があります。これにより、オリジナルに影響を与えずに変更を加えることができます。

問題は、元のボックスがファイルパッケージとして提供されたことです。作業中のインターネット接続は非常に遅いため、他の誰かが自分のマシンにvagrantフォルダーとvirtualboxフォルダーをコピーしました。したがって、ありません

config.vm.box_url

使用する。

どうすればこれを達成できますか?

編集:Vagrant 1.2.2を使用しています

回答:


41

既存のvmから新しいボックスを作成します。

  • Vagrantファイルがあるディレクトリにcdします

  • run vagrant packageこれは、デフォルトでpackage.boxという名前のboxファイルをエクスポートします

  • 実行vagrant box add foo package.boxしてpackage.boxを既存のボックスに追加します。(VMWareではなくVirtualBoxを使用していると仮定します)

  • 実行vagrant box listして、追加されたことを確認します。

これで、新しいフォルダーを作成し、vagrant init通常どおり実行し、ボックスを次のように設定できます。

 config.vm.box = "foo"

新しいVMは、以前のVMに存在していた正確なデータでスピンアップします。

Vagrant Documentation


さらに、Vagrantの作成者からPackerと呼ばれる新製品をチェックアウトします。これはこれと同じことを行いますが、VMを他のプロバイダー(Amazon、VirtualBoxなど)にコピーできます。

更新

Vagrantの新しいバージョンには、上記の手順を不要にする2つのコマンドがあります。

vagrant share
vagrant package

Vagrant shareボックスをアトラスにアップロードする
Vagrant packageと、.boxファイルが自動的に作成されます。

詳細については、入力してください vagrant --help


素晴らしい方法のようですが、残念ながら私は別のバージョンの
vagrant

@xiankai 1.2.2を実行していますが、これらの手順が機能することを確認しました。答えを明確にするためにいくつかの調整を行い、もう一度試してみて、どのエラーが発生するかを教えてください。
スパーダー

ああ、あなたが投稿したリンクを見た後、私はvagrant package代わりに試しましたがvagrant box package、私は今正しい軌道に乗っているようです!
xiankai

vagrantパッケージは正しいです。それは私の側のタイプミスでした。
スパーダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.