VagrantでオリジナルBoxを作成する CentOS7編
はじめに
UbuntuのvagrantのBOXを作成したが、CentOS7のBOXも作成したいと思う。
基本的にはBOX作成方法は変わらないため、作業時間はあまりかからなかった。
さて、今回は、CentOS7 1611 Minimalを使って進める。
準備
- VirtualBox
- CentOS ISOイメージ ISO
- Vagrant
仮想マシンの新規作成
以下の設定値で、仮想マシンを新規作成する。
項目 | 設定値 | 備考 |
---|---|---|
名前 | CentOS7 1611 Min | 自由に |
タイプ | Redhat | |
バージョン | Redhat(64-bit) | |
メモリ | 1024 | 適宜変更 |
ハードディスク | 仮想ハードディスクを作成する | |
ファイルの場所 | デフォルト 適宜変更 | |
ファイルサイズ | 256.0GB | 適宜変更 |
ハードディスクのファイルタイプ VDI | 適宜変更 | |
物理ハードディスクにあるストレージ | 可変サイズ | 適宜変更 |
OSのインストール
CentOSなので、kickstartで自動インストールを行うのがスマートだが
使ったことが無い為、今回は手動で以下設定値で、インストールを進める。
光学ドライブに、ダウンロードしたisoを選択し、VirtualBoxを起動する。
インストール時の設定
- インストール時の言語:日本語
- インストール先:パーティション等はデフォルトを使用
- rootパスワード:vagrant
インストール完了後
SELinux無効化
rootでログインし、以下を実行
1 2 |
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
設定後再起動
ネットワークの起動
- インターフェース名の確認
1 2 |
ip a |
1 2 |
nmcli c m enp0s3 connection.autoconnect yes |
DHCPで接続される
OSの更新
rootでログインし以下を実行する。
1 2 3 4 5 6 7 |
# 更新 yum update -y # 再起動する reboot |
Vagrant設定
ユーザの作成
vagrantが操作できるようにユーザを作成。パスワードは「vagrant」ととした。
1 2 3 |
useradd -m vagrant passwd vagrant |
SSHの設定
vagrantで必要なsshの設定を行う。公開鍵が無いとupした場合、エラーになる。
1 2 3 4 5 6 7 |
mkdir /home/vagrant/.ssh chmod 700 /home/vagrant/.ssh cd /home/vagrant/.ssh curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' chmod 600 /home/vagrant/.ssh/authorized_keys chown -R vagrant:vagrant /home/vagrant/.ssh |
sudoの設定
vagrantユーザがsudoコマンドをパスワードなしで使用できるようにする。
1 2 3 4 |
sudo visudo #追加 vagrant ALL=(ALL) NOPASSWD: ALL |
不要ファイルの削除
rootでログインし以下を実行する。
1 2 3 4 5 6 7 8 9 10 |
rm /root/.bash_history yum clean all rm -fr /var/log/* rm -fr /tmp/* dd if=/dev/zero of=zero bs=4k; \rm zero # 停止 shutdown -h now |
仮想ディスクの圧縮
コマンドプロンプトで、以下を実行
1 2 3 4 5 6 7 |
# UUIDを調べる VBoxManage list hdds #UUIDを設定して圧縮する vboxmanage modifyhd [UUID] --compact |
※今回は1.8Gから1.4GBに縮小されました
BOXの作成と追加
vagrant package --base "CentOS7 1611 Min"
vagrant box add --name CentOS7_1611_Min pakeage.box
1 2 3 4 5 |
#結果確認 G:\003_Vargrant\box>vagrant box list CentOS7_1611_Min (virtualbox, 0) UbuntuSRV16.04.02 (virtualbox, 0) |
vagrant box add box名 boxファイル: ローカルにボックスファイルをダウンロード
vagrant box list: box一覧確認
vagrant init box名: Vagrantfileの作成
vagrant up: VagrantfileからVMを起動する
vagrant status: 起動しているVM一覧確認
vagrant halt: VM停止
vagrant destroy: VM削除
vagrant ssh: 簡単にSSHログイン出来る