CentOS minimalのVagrant Box

目的: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

終了!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です