43

VirtualBox をインストールしてから、Ubuntu 12.10 Server Base OS をインストールしました。あらゆる種類のphpパッケージとその他のパッケージをインストールしました。チームメイトとセットアップを簡単に共有できるように、友人は Vagrant の使用を勧めてくれました。

現在の VirtualBox VM は を使用して作成されていないため、vagrant upパッケージ化する方法がわかりません。Vagrantのドキュメントでは、パッケージングについて説明していますが、次のように述べています。

このページの残りの作業を行う前に、vagrant up を実行して仮想環境が構築されていることを確認してください。

私の場合、既存の VM は最初に vagrant up を使用して作成されませんでした。

既存の VM をパッケージ化するにはどうすればよいですか?

4

9 に答える 9

26

認識すべき重要なこと (そして vagrant のドキュメントはそれについてあまり明確ではありません) は、パッケージングには 2 つの「フレーバー」があるということです。

  1. あなたが参照している「はじめに」のパッケージング ガイドでは、vagrant ベース ボックスから開始し、それを で初期化したと想定してvagrant upいますが、そうではありません。これにより、vagrant base box に対して行ったカスタマイズをパッケージ化できます
  2. ゼロから、または「プレーンな」VirtualBox VM から開始する場合は、vagrant base boxを作成する必要があります。Ubuntu に基づいたガイドに従えば問題ないはずです。

Oracle Enterprise Linux を使用してvagrant box をゼロから作成するための詳細なガイドがあり、これが役立つ場合があります。VeeWeeを試すこともできます。

または、Ubuntu 12.10 ベース ボックスから始めてカスタマイズを移植することもできます。

アップデート

上記は Vagrant 1.0 を参照しています。1.1 では少し変更があり、特にドキュメントが書き直されました。

  1. このvagrant package コマンドを使用すると、既存の vagrant ベース ボックスに対して行ったカスタマイズを、1.0 と同じ方法でパッケージ化できます。
  2. VirtualBox でベース ボックスを作成するためのドキュメントは 1.1 で削除されましたが、ドキュメントはプロセスが同じままであることを示唆していますが、Vagrant 1.1 は複数のプロバイダーmetadata.jsonをサポートするため、追加のファイルが必要になりました。
于 2013-02-24T10:16:04.480 に答える
10

vagrant package --output box_name.box --base "vm machine name" --vagrantfile Vagrantfile

ポート転送と SSH キーが正しく設定されていることを確認してください。

これは良い例かもしれません: https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box

于 2013-08-14T18:03:59.423 に答える
8

任意の VirtualBox を Vagrant ベース ボックス (基本的には OVA を使用) にパッケージ化できますVagrantfile

問題は次のとおりです。VM は vagrant ベース ボックスに従ってビルドされていません。vagrantbox.es で共有していなければ問題ありません。

vagrant を (gem またはインストーラーを使用して) インストールし、VM フォルダーで次のコマンドを実行して .box にパッケージ化します。

: Vagrant 1.2.x の場合、推奨されるインストール方法は OS 固有のパッケージを使用することです。Ruby Gem は 1.2.x では使用できません。

vagrant package --base ubuntu --output /path/to/ubuntu.box

vagrant ベース ボックスを他のユーザーと共有したい場合は、ドキュメントを読み、それらのルールに従って、他のユーザーが簡単に共有できるようにすることを忘れないでください。

于 2013-02-06T00:01:13.263 に答える
5

完全な答えではありませんが、非常に広範なドキュメントから必要なものを得ることができると思います。vagrant upこれは、Vagrant の「ボックス」をセットアップするための便利な手段にすぎないと思います。ボックスが Vagrant に準拠するには、いくつかの要件があります。それらはここで説明されています...

ドキュメンテーション: Vagrant - ベースボックス

ボックスに必要な最低限の骨は次のとおりです...

  • 共有フォルダー、ポート転送などの VirtualBox Guest Additions。
  • vagrant ユーザーの鍵ベースの認証をサポートする SSH
  • Chef と Puppet をインストールするための Ruby と RubyGems
  • プロビジョニングをサポートするための Chef と Puppet

ボックスがこれらの要件に準拠したら、vagrant packageコマンドを使用してポータブル インストールを作成するだけです...

その他のドキュメント: Vagrant - ボックス

したがって、この方法を行ったことがないので、完全な答えはありませんが、インストールをパッケージ化して配布できる状態にすることは可能だと思います。

于 2013-01-24T14:52:38.473 に答える
1

ここで述べたように - http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html ボックスをインポートしてパッケージ化するには、次の 3 つのものが必要です。

  • ゲストの追加をインストールする
  • パスワードなしのsudo
  • SSH アクセス Ubuntu 12.10 にログインし、Vbox Guest 追加機能をインストールし、パスワードなしの sudo アクセスでユーザー「vagrant」を追加するだけです。
于 2015-10-18T08:57:39.677 に答える
0

参照している「はじめに」のパッケージング ガイドでは、vagrant ベース ボックスから開始し、vagrant up で初期化したと想定していますが、そうではありません。これにより、vagrant ベース ボックスに対して行ったカスタマイズをパッケージ化できます。

ゼロから、または「プレーンな」VirtualBoxVM から開始する場合は、vagrant ベース ボックスを作成する必要があります。Ubuntu に基づいたガイドに従えば問題ないはずです。

于 2013-11-22T11:35:55.817 に答える