VirtualBoxをインストールしてから、Ubuntu 12.10 Server Base OSをインストールしました。あらゆる種類のphpパッケージと他のパッケージをインストールしました。友達がVagrantの使用を勧めてくれたので、チームメイトと簡単にセットアップを共有できます。
現在のVirtualBox VMはvagrant up
、それをパッケージ化する方法がわかりません。 Vagrantの ドキュメント はパッケージングについて説明していますが、次のように言っています:
このページの残りの部分に進む前に、vagrant upを実行して仮想環境が構築されていることを確認してください。
私の場合、既存のVMはvagrant upを使用して最初に作成されませんでした。
既存のVMをパッケージ化するにはどうすればよいですか?
気をつけなければならない重要なこと(そして、浮浪者のドキュメントはそれについてあまり明確ではありません)は、パッケージングには2つの「フレーバー」があるということです。
vagrant up
で初期化していますが、そうではありません。これにより、Vagrantベースボックスに行ったカスタマイズをパッケージ化できます。ゼロから浮浪者ボックスを作成するための詳細なガイド Oracle Enterprise Linuxを使用しており、役立つ場合があります。 VeeWee を試すこともできます。
または、 buntu 12.10 base box から始めてカスタマイズを移植することもできます。この場合、より簡単な最初のパッケージング方法を使用できます。
上記はVagrant 1.0について言及しています。 1.1では状況がわずかに変更され、特にドキュメントが書き直されました。
vagrant package
command を使用すると、1.0と同じ方法で既存のvagrantベースボックスに行ったカスタマイズをパッケージ化できます。metadata.json
ファイルを示唆しています- 必須 Vagrant 1.1がサポートするため 複数のプロバイダー 。vagrantパッケージ--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
VirtualBoxは、Vagrant Base Box(基本的にVagrantfile
付きのOVA)にパッケージ化できます。
問題は:VMはvagrantベースボックスに従ってビルドされません。vagrantbox.esで共有していない場合は問題ありません。
(gemまたはインストーラーを使用して)vagrantをインストールし、VMフォルダーで次のコマンドを実行して.boxにパッケージ化します。
[〜#〜] note [〜#〜]:Vagrant 1.2.xの場合、推奨されるインストール方法はOS固有のパッケージを使用することです。 Ruby Gemは1.2.xでは使用できません。
vagrant package --base ubuntu --output /path/to/ubuntu.box
浮浪者の基本ボックスを他の人と共有したい場合は、ドキュメントを読み、それらのルールに従って他の人が簡単に作業できるようにしてください。
完全な答えではありませんが、ドキュメントから必要なものを入手できると思います。私は信じている vagrant up
は、Vagrant「ボックス」をセットアップするための便利な手段にすぎません。箱がVagrantに準拠するためには多くの要件があります。ここで説明します...
ドキュメント: Vagrant-Base Boxes
箱に必要な裸の骨は次のとおりです...
ボックスがこれらの要件に準拠していれば、単にvagrant package
コマンドでポータブルインストールを作成...
その他のドキュメント: Vagrant-Boxes
ですから、完全な答えはありませんが、この方法で行ったことはありませんが、インストールをパッケージ化して配布できる状態にすることは可能だと思います。
「VBoxManage list vms」コマンドを使用してください!VMSがリストされていないことを確認するためだけにSudoで使用したので、正しい認証されたユーザーでコマンドを使用してください。上記の回答もボックスの作成に役立ちました。
ここで述べたように、 http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html boxをインポートしてパッケージ化するには、次のものが必要です:
個人的に、パッケージングプロセスの幻想的な側面は--base
スイッチ。多くの人がそうだと思う。チェックアウト vagrant package --help
の説明。 ドキュメント も言及していないようです。
元々VirtualBoxマシンであったマシンからVagrantボックスを作成するための、これらの2つの優れた詳細なステップバイステップガイドを見つけました。
参照している「はじめに」のパッケージングガイドは、Vagrantベースボックスから開始し、Vagrant Upで初期化したことを前提としていますが、そうではありません。これにより、Vagrantベースボックスに行ったカスタマイズをパッケージ化できます。
ゼロから、または「プレーン」VirtualBox
VMから開始する場合、あなたがするように、浮浪者のベースボックスを作成する必要があります。 Ubuntuに基づいたガイドに従ってください。
更新されたドキュメントを見て、ボックスがvagrantとシームレスに動作するようにする場合に必要なすべての特性を見つけてください。
http://docs.vagrantup.com/v2/virtualbox/boxes.html
また、veeweeと呼ばれるすばらしいプロジェクトを見てください。これにより、scractchからvagrant boxの生成をスクリプト化できます。これは、veeweeが実際にディストリビューションからISOをダウンロードし、それをバージンVirtualboxマシンにインストールしてから、すべての依存関係を構成およびインストールすることを意味します。
これには、すべての異なる種類のLinuxディストリビューション用の多くのレシピが付属しています。
https://github.com/jedi4ever/veewee
さらに多くのボックスがあります。彼らはパペットボックスだと言っていますが、すべてのプロバイダー(シェフ、パペット、シェルスクリプト)で動作します: