自分が忘れそうなので備忘録。
Vagrant用のboxをVirtualBoxでイチから作ります。
画像が多めです。
※筆者の環境はMac OS Xです
対象
- vagrant初心者
- 自分でboxを作ってみたい人
事前準備
- VirtualBoxがインストール済み
- Vagrantがインストール済み
- OSのインストールディスク等を用意
VirtualBoxのインストール
- URL: https://www.virtualbox.org/wiki/Downloads
- 環境に合わせたものをダウンロードしてください
- 本記事ではv4.3.26
Vagrantのインストール
- URL: http://www.vagrantup.com/downloads.html
- 環境に合わせたものを(ry
- 本記事ではv1.7.4
CentOSのISOをダウンロード
- URL: https://www.centos.org/download/
- Minimal ISOをダウンロードします
- 今回はCentOS6.7 64bitをダウンロードします
手順
仮装マシンにOSをインストールする!
- 新規仮装マシンを作成
- 名前は適当に、タイプは今回は「Linux」、バージョンは「Red Hat(64bit)」
- メモリは512MB(あまり大きすぎるとPCスペックによっては動作が不安定になります)
- 仮装ドライブを作成します
- 種類は「VDI(VirtualBox Disk Image)」を選択します
- 仮装ハードドライブは「可変サイズ」を選択します
- 仮装ハードドライブのサイズは250GBくらいにします
- 「設定」をクリックします
- 「ストレージ」をクリックし、「CD/DVDデバイスの追加」をクリックする
- 「ディスクを選択」でダウンロードしたISOを選択します
- 「オーディオ」をクリックし、「オーディオを有効化」のチェックを外します
- 「ポート」をクリックし、「USB」をクリックする
- 「USBコントローラーを有効化」のチェックを外し、OKをクリック
- ここまでできたらいよいよ「起動」しましょう
- 起動したら「Install or upgrade an existing system」を選択します
- メディアはインストールしないので、「Skip」を選択します
- 「Welcome to CentOS!」と表示されるので「OK」を選択します
- 言語は「Japanese」を選択します
- 日本語でのインストールは対応していないので、英語で続行します
- キーボードは「jp106」を選択します
- Reinitializeする必要があると表示されるので、「Re-initialize all」を選択します
- タイムゾーンは「Asia/Tokyo」を選択します
- rootパスワードは「vagrant」と入力します
- パスワードが簡単すぎると警告がでますが、「Use Anyway」を選択します
- インストール用パーティションを作成する場所を聞かれるので、「Use entire drive」を選択します
- 既にデータがある警告がでますが、「Write changes to disk」を選択します
- しばらくするとインストールが完了するので「Reboot」を選択します
サーバの設定を行う!
- 再起動したら、rootユーザでログインします
localhost login: root Password: vagrant
- NICの設定をする
# ln -f -s /dev/null /etc/udev/rules.d/70-persistent-net.rules # vi /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
# service network restart
- sudoを設定する
# visudo
/etc/sudoers// 56行目をコメントアウトする # Defaults requiretty // 最終行に下記を追記 vagrant ALL=(ALL) NOPASSWD: ALL
- SELinuxを無効にする
# vi /etc/selinux/config
/etc/selinux/config# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
- iptablesを無効化する
# chkconfig iptables off
- yumパッケージを最新版にしておく
# yum -y update # yum -y groupinstall "Base" # yum -y groupinstall "Japanese Support" # yum -y install kernel-devel gcc
- 一度再起動する
# shutdown -r now
- Guest Additionsのインストール
VirtualBoxのメニューから「Devices」→「Insert Guest Additions CD image...」を選択
(特になにも表示されていないがマウントされている)
# mount -r -t iso9660 /dev/cdrom /mnt # sh /mnt/VBoxLinuxAdditions.run Building the OpenGL support module [FAILED]は無視してOK
- vagrantユーザを追加する
# groupadd vagrant # useradd vagrant -g vagrant -G wheel # passwd vagrant New Password: vagrant Retype new password: vagrant # su - vagrant
- authorized_keysを登録する
$ mkdir ~/.ssh/ $ chmod 0700 ~/.ssh/ $ touch ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys $ curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub > ~/.ssh/authorized_keys $ hitory -c $ exit
- DISCを綺麗にする
# yum -y remove kernel-devel gcc # yum clean all # dd if=/dev/zero of=/EMPTY bs=1M # rm -f /EMPTY # history -c
- シャットダウンする
# shutdown -h now
boxを作成する!
- Macのターミナルを立ち上げる
- boxを作成する
$ cd ~/VirtualBox\ VMs/[仮装マシン名] $ vagrant package --base [仮装マシン名]
- 好きな名前に変更する
$ mv package.box centos6_ja.box
- 完成!