目的:Vagrantで使うminimalなvagrant boxを自分で準備したい
参考リンク:CentOS 6.5 x86_64 minimalのVagrant boxを作ってみた
MacBook Pro (Retina, 15-inch, Late 2013), OS X Yosemite Version 10.10.3
Vagrantをインストール。現時点ではv.1.7.2
VirtualBoxをインストール。現時点ではv4.3.22
CentOS公式サイトよりCentOS 7ではなく枯れているCentOS 6.6を選択。リンクを辿ってCentOS-6.6-x86_64-minimal.iso (383MB) をdownload
仮想マシンの作成
Virtual Boxを起動
Machine > New… をメニューから選択。以下(default)と記載のある部分はそのまま
Name: CentOS66
Type: Linux (default)
Version: Red Hat (64bit) (default)
Memory Size: 1024MB
Creat a virtual hard drive now (default)
VDI (default)
Dynamically allocated (default)
8GB (default)
Start アイコンをクリック
ダウンロードしたCentOS-6.6-x86_64-minimal.isoを指定
Install or upgrade an existing system (default)
Skip (media test)
* skipしないとisoファイルがejectされた状態になる。その場合isoファイルを右下のアイコンからmountしなおせばOK
インストール中の表示言語を選択:Japanese (日本語)を選択
このシステム用の適切なキーボードを選択:英語(アメリカ合衆国)を選択(使っているキーボードが英語版のため)
* キーボードの選択を誤った場合は後からここに沿って
vi /etc/sysconfig/keyboard して
KEYTABLE="jp106" MODEL="jp106" LAYOUT="jp"
か
KEYTABLE="us" MODEL="pc105+inet" LAYOUT="us"
に変更
基本ストレージデバイス (default)
アラートが出たら「はい。含まれていません。どのようなデータであっても破壊して下さい」を選択
ホスト名:centos66
アジア/東京 (default)
rootパスワード:[大切なので忘れないように]
「すべての領域を選択する」を選択
アラートが出たら「変更をディスクに書き込む(W)」を選択
インストールが終了するので、指示通り再起動し、rootでログイン
ネットワークの有効化
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 - ONBOOT=no + ONBOOT=yes # reboot
Mac(ホスト)から操作可能に
一時的にsshでホストコンピュータからログイン出来るようにする
Machine > Settings… をメニューから選択
Networkをクリック
Adapter 1 (default)
Port Forwardingをクリック
右上の+アイコンをクリック
Host Port 2222, Guest Port 22のみを入力、警告メッセージがでるがそのままOKをクリック
Macのターミナル(Terminal or iTerm2)を開いてsshでログイン
$ ssh localhost -p 2222 -l root
確認メッセージがでるのでyesとタイプして進め、先ほどのrootのログインパスワードでログイン
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): そのようなファイルやディレクトリはありません [root@centos66 ~]#
と表示される。後々メッセージが文字化けするのでロケールファイルの設定をする。
[root@centos66 ~]# vi /etc/sysconfig/i18n
#locale LC_CTYPE="ja_JP.utf8" LANG=ja_JP.utf8 LC_CTYPE=ja_JP.utf8 LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_PAPER="ja_JP.utf8" LC_NAME="ja_JP.utf8" LC_ADDRESS="ja_JP.utf8" LC_TELEPHONE="ja_JP.utf8" LC_MEASUREMENT="ja_JP.utf8" LC_IDENTIFICATION="ja_JP.utf8"
を追加
[root@centos66 ~]# reboot
yumリポジトリ登録、Vagrantユーザー作成、ssh設定
[root@centos66 ~]# curl -L -O http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@centos66 ~]# curl -L -O http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm [root@centos66 ~]# curl -L -O http://rpms.famillecollet.com/enterprise/remi-release-6.rpm [root@centos66 ~]# rpm -ivh epel-release-6-8.noarch.rpm rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm remi-release-6.rpm [root@centos66 ~]# useradd -m vagrant [root@centos66 ~]# passwd vagrant * パスワードを決めてを入力 [root@centos66 ~]# mkdir /home/vagrant/.ssh [root@centos66 ~]# chmod 700 /home/vagrant/.ssh [root@centos66 ~]# cd /home/vagrant/.ssh [root@centos66 .ssh]# curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' [root@centos66 .ssh]# chmod 600 /home/vagrant/.ssh/authorized_keys [root@centos66 .ssh]# chown -R vagrant.vagrant /home/vagrant/.ssh [root@centos66 .ssh]# visudo - Defaults requiretty + # Defaults requiretty - # %wheel ALL=(ALL) NOPASSWD: ALL + vagrant ALL=(ALL) NOPASSWD: ALL [root@centos66 .ssh]# su - vagrant [vagrant@centos66 ~]$ sudo ls /root
必要なアップデート、インストール、設定
[vagrant@centos66 ~]$ exit [root@centos66 .ssh]# cd [root@centos66 ~]# yum -y update [root@centos66 ~]# reboot [root@centos66 ~]# yum -y groupinstall "Development Tools" [root@centos66 ~]# yum -y install man man-pages-ja [root@centos66 ~]# yum -y remove git-1.7.1-3.el6_4.1.x86_64 perl-Git-1.7.1-3.el6_4.1.noarch [root@centos66 ~]# yum -y --enablerepo=rpmforge-extras install git [root@centos66 ~]# vi /etc/sysconfig/selinux - SELINUX=enforcing + SELINUX=disabled [root@centos66 ~]# service iptables stop [root@centos66 ~]# service ip6tables stop [root@centos66 ~]# chkconfig iptables off [root@centos66 ~]# chkconfig ip6tables off
VirtualBox Guest Additionsインストール
Devices > Insert Guest Additions CD image … をメニューから選択
[root@centos66 ~]# mkdir /media/cdrom [root@centos66 ~]# mount -r /dev/cdrom /media/cdrom [root@centos66 ~]# sh /media/cdrom/VBoxLinuxAdditions.run [root@centos66 ~]# umount /media/cdrom
Devices > CD/DVD Devices > Remove disk from virtual drive をメニューから選択
ネットワークデバイスエラー回避
[root@centos66 ~]# rm /etc/udev/rules.d/70-persistent-net.rules [root@centos66 ~]# rm -rf /dev/.udev/ [root@centos66 ~]# rm /lib/udev/rules.d/75-persistent-net-generator.rules
box作成のための最適化
[root@centos66 ~]# yum clean all [root@centos66 ~]# dd if=/dev/zero of=/EMPTY bs=1M [root@centos66 ~]# rm -f /EMPTY [root@centos66 ~]# shutdown -h now
Mac(ホスト)からの接続設定を削除
Devices > Network > Network Settings… を選択
Adaptor 1の Port Forwardingをクリック
作成した項目をクリックしてDelキーを押して削除。その後下部のOKボタンを押す。
設定画面のOKボタンを押す。
以上でboxの作成準備が完了。
Boxの作成と使用
$ vagrant package --base CentOS66 --output centos66-20150531.box
Boxのサイズは458MB
VagrantにBoxを登録
$ vagrant box add --name CentOS-6.6-x86_64-minimal-ja-20150531 centos66-20150531.box $ vagrant box list CentOS-6.6-x86_64-minimal-ja-20150531 (virtualbox, 0)
Vagrantで使えるか確認
$ vagrant init CentOS-6.6-x86_64-minimal-ja-20150531 $ vagrant up $ vagrant ssh
終了!