CentOS
vagrant

VagrantでCentOS7のBOXを作成する(Mac)

概要

CentOS7のBOXについては、既にVagrantCloudなどで多数配信されています。
しかし、何がインストールされているかわからないなど気になったので自作してみました。
その際の作業内容をメモとして残します。

事前準備

次の準備が完了して作業を開始しましょう。

仮想マシンの作成

VirtualBoxで仮想マシンを作成します。

「仮想マシン」->「新規」を選択

下記の内容を入力して、「作成」ボタンを押す。
vm-01.png

  • 名前     :vagrant-centos-7
  • タイプ    :Linux
  • バージョン  :Red Hat (64-bit)
  • メモリーサイズ:1024MB
  • ハードディスク:仮想ハードディスクを作成する

さらに、下記の内容を入力して、「作成」ボタンを押す。
vm-02.png

  • ファイルの場所          :vagrant-centos-7
  • ファイルサイズ          :40.00GB
  • ハードディスクのファイルタイプ  :VDI (VirtualBox Disk Image)
  • 物理ハードディスクにあるストレージ:可変サイズ

仮想マシンの設定

仮想マシンvagrant-centos7を右クリックし設定をクリックし、下記設定を行う。
vm-03.png

起動順序の設定

システムタブを開き、起動順序にあるフロッピーのチェックを外す。
vm-04.png

ストレージ設定

ストレージタブを開き、コントローラー: IDEでダウンロード済みの「CentOS-7-x86_64-Minimal-1611.iso」を選択する。
vm-05.png

オーディオ設定

オーディオタブを開き、オーディオを有効化のチェックを外す。
vm-06.png

ポート設定

ポートタブを開き、続いてUSBタブを開いて、USBコントローラーを有効化のチェックを外す。
vm-07.png

ネットワーク設定

ネットワークタブを開き、アダプター1にある高度をクリックし、ポートフォワーディングをクリック。
vm-08.png

右にある「+」をクリックして、sshの設定を追加する。
vm-09.png

以上で設定は終了です。
「OK」ボタンをクリックして、設定画面を閉じる。

CentOS7のインストール

仮想マシンを起動

仮想マシンvagrant-centos7を右クリックし起動->通常起動をクリックする。
vm-10.png

ブート選択

「Install CentOS Linux 7」を選択する。
vm-11.png

言語の選択

「japanese」と入力して、絞り込み、日本語を選択する。
vm-12.png

インストールの概要

そのまま「インストールの開始」ボタンをクリックする。
vm-13.png
※ソフトウェアに「!」が表示された場合は、少々待つと消える。
※システムに「!」が表示され、進めない場合は、一度開いてみると消える。

ルートのパスワード設定

「ROOTパスワード」をクリック。
vm-14.png

パスワードを入力し、完了を2回クリックする。
vm-15.png
※パスワードポリシーには反しているが、Vagrantで利用するのでこのまま登録する。

インストール

インストールが開始されます。
少々時間がかかるので、インストールが完了するまで待つ。
vm-16.png
※インストールの進行状況は、下部のバナーの上に表示されます。

再起動

インストールが完了すると「再起動」ボタンが表示されるので、クリックする。
vm-17.png

CentOS7の設定

CentOS7の起動

「CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)」を選択する。
vm-18.png

ログイン

rootでログインする。

コンソール(CentOS7)
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 ~]# 

ネットワークの設定

インタフェース名の確認

コンソール(CentOS7)
# nmcli c s
NAME    UUID                                  TYPE            DEVICE
enp0s3  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --

ONBOOTをyesに設定すると同時にネットワークにもDHCPで接続される。

コンソール(CentOS7)
# nmcli c m enp0s3 connection.autoconnect yes

vagrantユーザの追加

ユーザvagrantを作成し、パスワードをvagrantとする。

コンソール(CentOS7)
# groupadd -g 500 vagrant
# useradd -g vagrant -u 500 vagrant
# passwd vagrant

※パスワードは「vagrant」とする

sudoとRequirettyの設定を行う。

コンソール(CentOS7)
# visudo

下記を追記する

コンソール(CentOS7)
# Vagrant User Setting
Defaults:vagrant !requiretty
vagrant         ALL=(ALL)       NOPASSWD: ALL

vagrantユーザーの設定

ssh接続

Macのターミナルを起動時、下記コマンドにて接続する

ターミナル(Mac)
$ ssh -p 2222 vagrant@localhost

※「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が表示され、
 接続できない場合は、「known_hosts」を調整。

Vagrant sshの設定

ターミナル(vagrant)
$ install -m 0700 -d ~/.ssh
$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

GuestAdditionsのインストール

準備

ターミナル(vagrant)
$ sudo yum -y install epel-release
$ sudo yum -y install -y bzip2 gcc make kernel-devel-`uname -r` dkms gcc-c++

Guest Addions CD imageのセット
vm-20.png

GuestAdditionsのインストール

ターミナル(vagrant)
$ 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のアンマウント

ターミナル(vagrant)
$ sudo umount /mnt

仮想マシンの終了

ボックスサイズの最小化し、シャットダウンする。

ターミナル(vagrant)
$ 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ファイルを作成する。

ターミナル(mac)
$ 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へ登録する。

ターミナル(Mac)
$ 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)

仮想マシンの作成とログイン

作成したボックスで仮想マシンを作成しログインしてみる。

ターミナル(Mac)
$ mkdir -p ~/Document/Vagrant/centos7
$ cd ~/Document/Vagrant/centos7
$ vagrant init local/centos7
$ vagrant up
$ vagrant ssh

参考資料