はじめに
CentOS7のvagrantboxを作成したときの備忘録。
なお、以下、参考URLとほぼほぼ同じ内容になります。
環境情報
今回の作業環境は以下の通りです。
- Windows 10 (64bit / Home)
- VirtualBox 5.26
- Vagrant 2.0.2
準備したISOファイル
- CentOS-7-x86_64-DVD-1708.iso
仮想マシンの作成
VirtualBoxでベースになる仮想マシンを作成
1.メニューから「仮想マシン」->「新規」を選択
2.名前とオペレーティングシステム、メモリーサイズ、ハードディスクに次の内容を入力し作成ボタン
を押す
項目 | 設定内容 |
---|---|
名前 | CentOS-7.4-x86_64 ※任意 |
タイプ | Linux |
バージョン | Red Hat (64-bit) |
メモリーサイズ | 2048MB |
ハードディスク | 仮想ハードディスクを作成する |
3.ファイルの場所、ファイルサイズ、ハードディスクのファイルタイプ、物理ハードディスクにあるストレージに次の内容を入力し作成ボタン
を押す
項目 | 設定内容 |
---|---|
ハードディスクのファイルタイプ | VDI (VirtualBox Disk Image) |
物理ハードディスクにあるストレージ | 可変サイズ |
ファイルの場所 | CentOS-7.4-x86_64 ※デフォルト値のまま |
ファイルサイズ | 20.33GB ※任意 |
仮想マシンの初期設定
仮想マシンの不要なハードウエアを無効にします。
1.仮想マシンCentOS-7.4-x86_64
を右クリックし設定
を選択
2.システム
タブを開き、起動順序
にあるフロッピー
のチェックを外す
3.オーディオ
タブを開き、オーディオを有効化
のチェックを外す
4.USB
タブを開き、USBコントローラーを有効化
のチェックを外す
5.OK
を押す
ポートフォワーディングの設定
1.仮想マシンCentOS-7.4-x86_64
を右クリックし設定
を選択
2.ネットワーク
タブを開き、アダプター 1
にある高度
をクリックし、ポートフォワーディング
を押す
3.右にある+
を押し、名前にssh
、ホストIPに127.0.0.1
、ホストポートに2222
、ゲストポートに22
を設定しOK
を押す
4.OK
を押す
仮想マシンにCentOS7のインストールメディアを設定し起動する
仮想マシンにCentOS7のインストールメディアを設定し起動します。
1.仮想マシンCentOS-7.4-x86_64
を右クリックし設定
を選択
2.ストレージ
タブを開き、コントローラー: IDE
にぶら下がっている空
を選択
3.光学ドライブ
の右にあるCDマークのアイコン
をクリックし、仮想光学ディスク・ファイル
を選択
4.予めダウンロード済みのCentOS-7-x86_64-DVD-1708.iso
を選択
5.OK
を押す
6.仮想マシンCentOS-7.4-x86_64
を右クリックし起動
->通常起動
を選択
CentOS7のインストール
1.Install CentOS 7
を選択
2.インストール時に使用する言語で日本語
を選択
3.システム
のインストール先
をクリックし、ファイルシステムを好みのレイアウトに変更する。今回は何も設定せずに完了
を押下。
4.インストールを開始する。なお、特に設定をしないと以下の状態。
項目 | 設定内容 |
---|---|
日付と時刻 | アジア/東京 タイムゾーン |
キーボード | 日本語 |
言語サポート | 日本語 |
インストールソース | ローカルメディア |
ソフトウェアの選択 | 最小限のインストール |
KDUMP | 有効 |
ネットワークとホスト名 | 接続していません |
SECURITY POLICY | プロファイルが選択されていません |
5.インストール中に、ROOTパスワードを設定する。パスワードはvagrant
とする。
6.再起動
を行う。
SELinuxの無効化
# setenforce 0
# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
ネットワークの起動設定
1.インタフェース名の確認
# nmcli c s
NAME UUID TYPE DEVICE
enp0s3 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 802-3-ethernet --
2.ONBOOTをyesにする、と同時にネットワークにもDHCPで接続される。
# nmcli c m enp0s3 connection.autoconnect yes
vagrantユーザの追加
ユーザvagrant
を作成し、パスワードをvagrant
とする。
sudoersの設定も行う。
# groupadd -g 500 vagrant
# useradd -g vagrant -u 500 vagrant
# passwd vagrant
※パスワードは「vagrant」とする
# vi /etc/sudoers.d/vagrant
vagrant ALL=(ALL) NOPASSWD: ALL
sshでログイン
ここからはターミナルソフトで接続して作業を行う。
ログイン情報
項目 | 値 |
---|---|
ホスト | 127.0.0.1 |
ポート | 2222 |
ユーザ | vagrant |
パスワード | vagrant |
Vagrant sshの設定
$ install -m 0700 -d $HOME/.ssh
$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > $HOME/.ssh/authorized_keys
$ chmod 600 $HOME/.ssh/authorized_keys
GuestAdditionsのインストール
GuestAdditionsインストール準備
$ sudo yum -y install epel-release
$ sudo yum -y install bzip2 gcc make kernel-devel kernel kernel-headers dkms gcc-c++
$ sudo reboot
Guest Addions CD imageのセット
VirtualBoxのゲストコンソールウインドウをアクティブにした際のメニューデバイス
からInsert Guest Additions CD イメージの挿入
を選択
GuestAdditionsのインストール
ターミナルに戻り、次のコマンドを実行する。
$ sudo mount -r /dev/cdrom /mnt
$ sudo /mnt/VBoxLinuxAdditions.run
Guest Addions CDのアンマウント
$ sudo umount /mnt
インストール完了後、仮想マシンのメニューから、「デバイス」⇒「光学ドライブ」⇒「仮想ドライブからディスクを除去」を選択します。
ボックスサイズの最小化
不要なものを消します。
ddしてrmするのは、ボックスを小さくするおまじない。
$ sudo rm /root/.bash_history
$ sudo yum clean all
$ sudo rm -fr /var/log/*
$ sudo rm -fr /tmp/*
$ sudo dd if=/dev/zero of=/0 bs=4k
$ sudo rm /0
$ history -c
シャットダウン
$ sudo shutdown -h now
boxの作成
コマンドプロンプトを起動します。
# box 作成用のフォルダ(任意)に移動します。
> cd xxxx(box 作成用のフォルダ)
# box を作成します。
# --base:作成対象の仮想マシン名、--output:出力 box ファイル名
> vagrant package --base CentOS-7.4-x86_64 --output CentOS-7.4-x86_64.box
==> CentOS-7.4-x86_64: Exporting VM...
==> CentOS-7.4-x86_64: Compressing package to: C:/xxxx/CentOS-7.4-x86_64.box
# 作成した box ファイルを確認します。
> dir
...
YYYY/MM/DD hh:mm 671,008,648 CentOS-7.4-x86_64.box
...
作成した box の動作確認
# 作成した box を vagrant に登録します。
# --name:vagrant への登録名、xxxx.box:作成した box ファイル名(パス)
> vagrant box add --name CentOS-7.4-x86_64 CentOS-7.4-x86_64.box
# 登録した box を確認します。
> vagrant box list
CentOS-7.4-x86_64 (virtualbox, 0)
# Vagrantfile を作成します。
> vagrant init CentOS-7.4-x86_64
# box を起動します。
> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'CentOS-7.4-x86_64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: CentOS-74_default_1526565802116_2360
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => C:/xxxxxxxx/CentOS-7.4
# 起動した box に ssh で接続します。
> vagrant ssh
以上になります。
■参考URL