Vagrantを使った仮想マシンの作成方法について解説しました。VagrantではVagrantbox.esで公開されているBoxを起動することはできますが、仮想マシンを新規に作成することはできません。Vagrantbox.esで公開されたBoxより、自前のBoxを利用したいと思うこともあるかと思います。そこで今回は、VirtulBoxで作成した仮想マシンをVagrant用の仮想マシンイメージに変換する方法を解説します。作業の前提条件は、下記のとおりです。Boxへの変換を行うために必要な、仮想マシンの準備を行います。Identifier)を確認します。vms今回は、CentOS-6.4-i386-minimal(520a517f-b156-4ae2-a196-3f71265b6a8d)を変換します。この仮想マシンは、CentOSをインストールしたばかりの素の仮想マシンです。仮想マシンのネットワークは、デフォルトではNATで作成されるため、ホストマシンと仮想マシン間の通信が行えません。このため、仮想マシンのネットワークをNAT→ブリッジネットワークに変更します。Add-Inをインストールするため、インストールDVDをマウントします。Controllerの名前と、空きポートの情報が必要ですので、showvminfoコマンドで確認します。Controller名と空きポートが確認できましたので、ISOイメージを割り当てます。I:/ISO/VirtualBox/VBoxGuestAdditions_4.2.18.iso変更後のメディア割り当て状況を確認すると、ISOイメージが割り当てられています。disabledブート順序の変更showvminfoでは、ブート順序も確認できます。on今回は、HDD→DVDの順序ですので問題ありませんが、DVD→HDDの場合、マウントしたDVDからシステムがブートしてしまうので、ブート順序を変更します。none変更後のブート順序は、HDD→DVDの順で起動し、その他は無指定になります。変換元の仮想マシンを起動します。520a517f-b156-4ae2-a196-3f71265b6a8d仮想マシンの設定Vagrant用の仮想マシンイメージに変換するためには、変換元の仮想マシンに、ユーザー名:vagrantを使って、SSHで接続できる必要がありますので、変換元の仮想マシン上で、Vagrant用の設定を行います。仮想マシン接続時に必要となる、vagrantユーザーとグルーブを作成します。仮想マシンのネットワークを有効にして、IPアドレスを確認します。ブリッジインターフェースの場合、ホストOS同一セグメントのIPアドレスが割り当てられます。eth0ネットワーク確認ホストOS側から、PINGコマンドの応答を確認します。以降の作業を行います。ログインしたら、rootユーザーに移行します。vagrant@192.168.0.xxsudo設定Vagrantでは、root権限でコマンドを実行できる必要がありますので、/etc/sudoders.dにvagrantユーザー設定を行います。/etc/sudoers.d/vagrantsudo設定変更vagrantコマンドを使って、仮想マシンに接続できるように/etc/sudoersを編集します。~vagrant/.sshSSHサーバー設定変更SSH私有鍵を使用した認証を行うように、SSHサーバーの設定を変更します。yes編集が終了したら、sshdを再起動します。restartネットワークルール設定の変更Vagrant起動時に、ネットワークインターフェースが常に初期化されるように、70-persistent-net.rulesを変更します。/lib/udev/write_net_rulesfastestmirror設定yumコマンドで参照するミラーサイトを、日本に限定します。開発環境として、Boxを使用するためFirewallおよび、SELinuxを無効化します。Add-Inのインストールを行います。Add-Inをインストールすると、共有フォルダやクリップボード共有などの機能をゲストOSで利用できるようになります。ビルドに必要なパッケージをインストールし、Add-Inをビルドします。driverのビルドに失敗していますが、問題ありません。reboot設定スクリプト手順4からここまでの手順を、スクリプトにしました。手順3のネットワーク確認後、本スクリプトをホストOS側からscpコマンドで転送した後、実行して下さい。仮想マシンの設定が終了しましたので、SSH接続を確認します。Boxに接続する際に必要となるSSH私有鍵(秘密鍵)をホストOS側に設定します。私有鍵は、デフォルトインストールの場合、C:\USERS\%USERNAME%\.vagrant.dに保存されていますので、insecure_private_keyを$HOME/.sshにコピーします。~/.ssh/vagrantSSH設定ファイルの編集ホストOSが所属するネットワークのホストに対して、SSH接続するユーザー名と認証鍵を設定します。仮想マシンに接続します。パスワードの入力無しで、接続できれば成功です。仮想マシンのエクスポート変換元の仮想マシンのマシン名または、UUIDを指定してイメージをエクスポートします。変換元の仮想マシンが起動中の場合は、停止して下さい。変換元の仮想マシンのMACアドレスを確認します。Boxに必要なVagrantfileを作成します。MACアドレスは、先に確認したアドレスを設定します。Boxは、tarアーカイブですので、tarコマンドでアーカイブします。Boxを作成するスクリプトです。作成したBoxを起動します。作成したVagrantfileに、ダウンロードするBoxのURLを指定します。