Vagrant boxes作成 Virtualbox Cent OS 6.5

Vagrant boxファイル作成 Virtualbox CentOS 6.5

VagrantのCentOS6.5のboxファイルをVirtualboxで作成します。

環境・前提条件

ソフトウェア バージョン 備考
Vagrant 1.6.3 -
VirtualBox 4.3.12 -
Cent OS 6.5 最小構成でインストール

OSイメージの取得サイト例。

Base Box(CentOS 6.5)作成

以下を参考にBase Boxを作成する。

Virtualbox GUI設定

  • Virtualboxを起動する。

  • メニューから[仮想マシン]->[新規]を選択する。ツールバーより、[新規]を選択する。

  • 名前とオペレーションシステム: 以下を設定する。
項目
名前 basebox_centos(任意の名前)
タイプ Linux
バージョン Red Hat(32bit or 64bit)
  • メモリーサイズ: 512MBを設定する。
  • ハードドライブ: 仮想ドライブを作成するを選択する。
  • ハードドライブのファイルタイプ: VDIを選択する。
  • 物理ドライブにあるストレージ: 可変サイズを選択する。
  • ファイルの場所とサイズ: 以下を設定する。
項目
場所 basebox_centos(任意のフォルダ)
サイズ 8G以上(任意のサイズ)
  • 作成されたbasebox_centosにカーソルを合わせ、メニューから[仮想マシン]->[設定]を選択する。またはツールバーより設定を選択する。
  • [ストレージ]->[コントローラー: IDE]->[CD/DVDデバイスの追加]を選択し、OSイメージ(CentOS-6.5-x86_64-minimal.iso)を選択。
  • [オーディオ]->[オーディオの有効化]のチェックを外す。
  • [ポート]->[USB]->[USBコントローラーの有効化]のチェックを外す。
  • [ネットワーク]->[アダプター1]->[ネットワークアダプターを有効化]のチェックを確認。割り当てが”NAT”を確認。高度をクリックし、[ポートフォワーディング]を選択。以下の値で新規ルールを追加する。
項目
名前 ssh
プロトコル TCP
ホストIP 127.0.0.1
ホストポート 2222
ゲストIP 10.0.2.15
ゲストポート 22

Cent OS インストール

  • basebox_centosにカーソルを合わせ、メニューから[仮想マシン]->[起動]を選択する。またはツールバーより起動を選択する。ここより先はCent OSインストーラーに従いインストールする。
  • “Welcome to CentOS 6.5!”の画面では”Install or upgrade an existing system”を選択する。
  • インストレーションメディアのテストは”Skip”を選択する。
  • “Welcome to CentOS 6.5!”で”OK”を選択する。
  • “Language Selection”で”English”を選択し、”OK”を選択する。
  • “Keyboard Selection”で”jp106”を選択し、”OK”を選択する。
  • “Warning Error processing drive”で”Re-initialize all”を選択する。
  • “Time Zone Selection”で”Asia/Tokyo”を選択し、”OK”を選択する。
  • “Root Password”で”vagrant”を入力し”OK”を選択する。
  • “Partitioning Type”で”Use entire drive”を選択し、”OK”を選択する。
  • “Writing storage configuration to disk”で”Write change to disk”を選択する。
  • “Complete”で”Reboot”を選択する。

SSH接続までの初期設定

  • VirtualboxコンソールにLoginプロントが表示されるので、root passwordでLoginする。
  • eth0の設定ファイルを編集する。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
---
以下を編集
ONBOOT=yes # no => yes
  • 設定の反映のため、ネットワークの再起動
# service network restart
  • eth0のstateがUPであることを確認する。
# ip a
  • ターミナルからsshで接続
$ ssh root@127.0.0.1 -p 2222

ssh接続が失敗する場合は、Virtualbox GUI設定のネットワークのポートフォワーディング設定を見直す。

vagrant user 設定

  • vagrant グループ・ユーザの作成。パスワードの設定。
# groupadd vagrant
# useradd -g vagrant vagrant
# passwd vagrant
  • vagrantユーザをpasswordなしでsudoできるようにし、requirettyを無効化する。
# visudo
---
以下をコメントアウト。
#Defaults    requiretty
---
以下を末尾に追記。
vagrant ALL=(ALL) NOPASSWD: ALL
  • sudoの確認
# su - vagrant
$ whoami
vagrant
$ sudo whoami
root
$ mkdir ~/.ssh
$ chmod 0700 ~/.ssh
$ curl -L -o ~/.ssh/authorized_keys  https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
$ chmod 0600 ~/.ssh/authorized_keys

VirtualBox Guest Additions インストール

  • VirtualBox Guest Additionsに必要なパッケージのインストール
$ sudo yum -y update
$ sudo yum -y install gcc kernel-devel perl
$ sudo reboot
  • Virtualboxのメニュー[Devices]->[install Guest Additions CD image]を選択。

  • VirtualBox Guest Additions インストール

# su - vagrant
$ sudo mkdir -p /mnt/cdrom
$ sudo mount -r /dev/cdrom /mnt/cdrom
$ sudo /mnt/cdrom/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.12 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module                   [  OK  ]
Building the shared folder support module                  [  OK  ]
Building the OpenGL support module                         [  OK  ]
Doing non-kernel setup of the Guest Additions              [  OK  ]
Starting the VirtualBox Guest Additions                    [  OK  ]
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
$ 
  • shutdown
$ sudo shutdown -h now

boxファイル作成

  • HOST OSのVirtualBox VMディレクトリでboxファイルを作成する。
$ cd ~/VirtualBox\ VMs/
$ vagrant package --base basebox_centos --output basebox_centos65.box
$ file basebox_centos.box

作成したboxのテスト

  • 作成boxファイルを Vagrant に登録する。
$ vagrant box add centos65 basebox_centos65.box
  • vagrantでの起動。ログインの確認。
$ vagrant init centos65
$ vagrant up
$ vagrant ssh