概要
CentOS7のBOXについては、既にVagrantCloudなどで多数配信されています。
しかし、何がインストールされているかわからないなど気になったので自作してみました。
その際の作業内容をメモとして残します。
事前準備
次の準備が完了して作業を開始しましょう。
- VirtualBox のインストール
- Vagrant のインストール
- CentsOS7(CentOS-7-x86_64-Minimal-1611.iso)をダウンロード
仮想マシンの作成
VirtualBoxで仮想マシンを作成します。
「仮想マシン」->「新規」を選択
- 名前 :vagrant-centos-7
- タイプ :Linux
- バージョン :Red Hat (64-bit)
- メモリーサイズ:1024MB
- ハードディスク:仮想ハードディスクを作成する
- ファイルの場所 :vagrant-centos-7
- ファイルサイズ :40.00GB
- ハードディスクのファイルタイプ :VDI (VirtualBox Disk Image)
- 物理ハードディスクにあるストレージ:可変サイズ
仮想マシンの設定
仮想マシンvagrant-centos7を右クリックし設定をクリックし、下記設定を行う。
起動順序の設定
システムタブを開き、起動順序にあるフロッピーのチェックを外す。
ストレージ設定
ストレージタブを開き、コントローラー: IDEでダウンロード済みの「CentOS-7-x86_64-Minimal-1611.iso」を選択する。
オーディオ設定
ポート設定
ポートタブを開き、続いてUSBタブを開いて、USBコントローラーを有効化のチェックを外す。
ネットワーク設定
ネットワークタブを開き、アダプター1にある高度をクリックし、ポートフォワーディングをクリック。
以上で設定は終了です。
「OK」ボタンをクリックして、設定画面を閉じる。
CentOS7のインストール
仮想マシンを起動
仮想マシンvagrant-centos7を右クリックし起動->通常起動をクリックする。
ブート選択
「Install CentOS Linux 7」を選択する。
言語の選択
「japanese」と入力して、絞り込み、日本語を選択する。
インストールの概要
そのまま「インストールの開始」ボタンをクリックする。
※ソフトウェアに「!」が表示された場合は、少々待つと消える。
※システムに「!」が表示され、進めない場合は、一度開いてみると消える。
ルートのパスワード設定
パスワードを入力し、完了を2回クリックする。
※パスワードポリシーには反しているが、Vagrantで利用するのでこのまま登録する。
インストール
インストールが開始されます。
少々時間がかかるので、インストールが完了するまで待つ。
※インストールの進行状況は、下部のバナーの上に表示されます。
再起動
インストールが完了すると「再起動」ボタンが表示されるので、クリックする。
CentOS7の設定
CentOS7の起動
「CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)」を選択する。
ログイン
rootでログインする。
CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64
localhost login: root
Password:
Last login: Tue Jul 4 12:50:07 on tty1
[root@localhost ~]#
ネットワークの設定
インタフェース名の確認
# nmcli c s
NAME UUID TYPE DEVICE
enp0s3 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 802-3-ethernet --
ONBOOTをyesに設定すると同時にネットワークにもDHCPで接続される。
# nmcli c m enp0s3 connection.autoconnect yes
vagrantユーザの追加
ユーザvagrantを作成し、パスワードをvagrantとする。
# groupadd -g 1000 vagrant
# useradd -g vagrant -u 1000 vagrant
# passwd vagrant
※パスワードは「vagrant」とする
sudoとRequirettyの設定を行う。
# visudo
下記を追記する
# Vagrant User Setting
Defaults:vagrant !requiretty
vagrant ALL=(ALL) NOPASSWD: ALL
vagrantユーザーの設定
ssh接続
Macのターミナルを起動時、下記コマンドにて接続する
$ ssh -p 2222 vagrant@localhost
※「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が表示され、
接続できない場合は、「known_hosts」を調整。
Vagrant sshの設定
$ install -m 0700 -d ~/.ssh
$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
GuestAdditionsのインストール
準備
$ sudo yum -y install epel-release
$ sudo yum -y install -y bzip2 gcc make kernel-devel-`uname -r` dkms gcc-c++
GuestAdditionsのインストール
$ sudo mount -r /dev/cdrom /mnt
$ sudo /mnt/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.22 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
Guest Addions CDのアンマウント
$ sudo umount /mnt
仮想マシンの終了
ボックスサイズの最小化し、シャットダウンする。
$ sudo yum clean all
# Log削除
$ sudo rm -rf /var/log/*
$ sudo rm -rf /tmp/*
# 圧縮
$ sudo dd if=/dev/zero of=/0 bs=4k
$ sudo rm /0
# コマンド履歴をクリア
$ sudo rm /root/.bash_history
$ history -c
# シャットダウン
$ sudo shutdown -h now
ボックスの作成
Macのターミナル上で、vagrantコマンドにてBOXファイルを作成する。
$ vagrant package --base vagrant-centos7
==> vagrant-centos7: Clearing any previously set forwarded ports...
==> vagrant-centos7: Exporting VM...
==> vagrant-centos7: Compressing package to: /Users/hoge/package.box
$ ls -l package.box
-rw-r--r-- 1 hoge staff 621394873 7 4 15:34 package.box
ボックスの追加
作成したpackage.bxoをvagrantへ登録する。
$ vagrant box add local/centos7 package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7' (v0) for provider:
box: Unpacking necessary files from: file:///Users/uemura/package.box
==> box: Successfully added box 'centos7' (v0) for 'virtualbox'!
$ vagrant box list
local/centos7 (virtualbox, 0)
仮想マシンの作成とログイン
作成したボックスで仮想マシンを作成しログインしてみる。
$ mkdir -p ~/Document/Vagrant/centos7
$ cd ~/Document/Vagrant/centos7
$ vagrant init local/centos7
$ vagrant up
$ vagrant ssh