LoginSignup
4
3

More than 5 years have passed since last update.

【#Vagrant】Windows 環境上の Vagrant で CentOS 7 系ディストリビューション(Oracle Linux 7)の Box を自作する #OracleLinux

Last updated at Posted at 2014-09-01

Windows 環境上の Vagrant で RHEL7 互換 Linux ディストリビューションの Box を自作する手順について、自分用のメモとしてまとめました。

CentOS 7 でも同じ手順になる思いますが、今回は、Oracle Linux 7 の Box を次に示す環境のホストマシンで自作します。

ソフトウェア名 バージョン 備考
OS Windows Server 2012 R2 Update -
Chocolatey 0.9.8.27 -
VitrualBox 4.3.14 cup VirtualBox でインストール
Vagrant 1.6.3 cup Vagrant でインストール
7-Zip 9.22.01.20130618 cup 7zip でインストール
cwRsync 5.3.0 cup cwRsync でインストール

1: 自作 Box のベースとなるゲスト OS(仮想マシン)の作成

手順 1: ゲスト OS(仮想マシン)を作成します

ホストマシン
PS> & vboxmanage createvm `
--name "vagrant-oracle-linux-release-7-x86_64" `
--ostype "Oracle_64" `
--register

PS> & vboxmanage list vms

"vagrant-oracle-linux-release-6-x86_64" {{ゲスト OS の UUID}}  

手順 2: ホストマシンのハードウェア仮想化支援機能対応有無に合わせてゲスト OS(仮想マシン)の設定をします

ホストマシン
PS1> & vboxmanage modifyvm "vagrant-oracle-linux-release-7-x86_64" `
--memory 4096 `
--rtcuseutc "on" `
--cpus 2 `
--cpuexecutioncap 100 `
--ioapic "on" `
--hpet "on" `
--hwvirtex "on" `
--nestedpaging "on" `
--largepages "on" `
--vtxvpid "on" `
--accelerate3d "off" `
--accelerate2dvideo "off" `
--nic1 "nat" `
--natpf1 "ssh,TCP,,2222,,22" `
--nictype1 "virtio" `
--nictype2 "virtio" `
--nictype3 "virtio" `
--nictype4 "virtio"

手順 3: ゲスト OS(仮想マシン)に IDE ストレージコントローラーを追加します

ホストマシン
PS> & vboxmanage storagectl "vagrant-oracle-linux-release-7-x86_64" `
--name "IDE Controller" `
--add "ide"

PS> & vboxmanage showvminfo "vagrant-oracle-linux-release-7-x86_64" | Select-String "storage"

Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on

手順 4: ゲスト OS(仮想マシン)に SATA ストレージコントローラーを追加します

ホストマシン
PS> & vboxmanage storagectl "vagrant-oracle-linux-release-7-x86_64" `
--name "SATA Controller" `
--add "sata" `
--portcount 2

PS> & vboxmanage showvminfo "vagrant-oracle-linux-release-7-x86_64" | Select-String "storage"

Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA Controller
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      2
Storage Controller Bootable (1):        on

手順 5: 任意のフォルダーを作成して、インストールメディアのイメージファイルを配置します

インストールメディアのイメージは以下のウェブサイトからダウンロードします。
https://edelivery.oracle.com/linux

ホストマシン
PS> New-Item -Path "D:\ISOs" -ItemType "Directory" -Force
PS> Get-ChildItem -Path "D:\ISOs"

    ディレクトリ: C:\ISOs


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2014/xx/xx     xx:xx 4172283904 V46135-01.iso

手順 6: ゲスト OS(仮想マシン)にインストールメディアの DVD イメージファイルをアタッチします

ホストマシン
PS> & vboxmanage storageattach "vagrant-oracle-linux-release-7-x86_64" `
--storagectl "IDE Controller" `
--port 0 `
--device 0 `
--type "dvddrive" `
--medium "D:\ISOs\V46135-01.iso"

PS> & vboxmanage list dvds

UUID:           {仮想 DVD の UUID}
State:          created
Type:           readonly
Location:       D:\ISOs\V46135-01.iso
Storage format: RAW
Capacity:       3979 MBytes

手順 7: 空の仮想ハードディスクイメージファイルを作ります

ホストマシン
PS> & vboxmanage createhd `
--filename "$HOME\VirtualBox VMs\vagrant-oracle-linux-release-7-x86_64\box-disk1.vdi" `
--size 40960

PS> Get-Item -Path "$HOME\VirtualBox VMs\vagrant-oracle-linux-release-7-x86_64\box-disk1.vdi"

    ディレクトリ: C:\Users\xxxxxx\VirtualBox VMs\vagrant-oracle-linux-r
    elease-7-x86_64


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2014/xx/xx     xx:xx    2097152 box-disk1.vdi

手順 8: ゲスト OS(仮想マシン)に仮想ハードディスクイメージファイルをアタッチします

ホストマシン
PS> & vboxmanage storageattach "vagrant-oracle-linux-release-7-x86_64" `
--storagectl "SATA Controller" `
--port 0 `
--device 0 `
--type "hdd" `
--medium "$HOME\VirtualBox VMs\vagrant-oracle-linux-release-7-x86_64\box-disk1.vdi"

PS> & vboxmanage list hdds

UUID:           {仮想ハードディスクの UUID}
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\kukita.keisuke\VirtualBox VMs\vagrant-oracle-linux-release-7-x86_64\box-disk1.vdi
Storage format: VDI
Capacity:       40960 MBytes

手順 9. ゲスト OS(仮想マシン)を起動します

ホストマシン
PS> & vboxmanage startvm "vagrant-oracle-linux-release-7-x86_64"

2: Oracle Linux 7.0 のインストール

手順 1: インストーラーを開始します

ゲストOS
リストから以下を選択しEnterキーを入力します
- "Intall Oracle Linux 7.0"

手順 2: 言語を選択します

ゲストOS
リストから以下を選択し [Continue] ボタンをクリックします
- "English (United States)"

手順 3: タイムゾーンの設定画面に移ります

ゲストOS
[DATE & TIME] と書かれてる部分をクリックします

手順 4: タイムゾーンを設定します

ゲストOS
以下を選択し画面左上の [Done] ボタンをクリックします
- Region: Asia
- City: Tokyo

手順 5: キーボード配列の設定画面に移ります

ゲストOS
[KEYBOARD] と書かれてる部分をクリックします

手順 6: キーボード配列を設定します

ゲストOS
以下を選択し画面左上の [Done] ボタンをクリックします
- Japanese

手順 7: ディスクのパーティショニングの設定画面に移ります

ゲストOS
[INSTALLATION DESTINATION] と書かれてる部分をクリックします

手順 8: ディスクのパーティショニングを設定します

ゲストOS
画面左上の [Done] ボタンをクリックします

手順 9: インストールを開始します

ゲストOS
画面右下の [Begin Installation] ボタンをクリックしインストールが完了するまで待ちます

手順 10: root ユーザーのパスワード設定画面に移ります

ゲストOS
[ROOT PASSWORD] と書かれてる部分をクリックします

手順 11: root ユーザーのパスワードを設定します

ゲストOS
パスワードに以下の値を設定し画面左上の [Done] ボタンを 2 回クリックします
- vagrant

手順 12: インストールの完了を確認しゲスト OS(仮想マシン)をリブートします

ゲストOS
画面右下の [Reboot] ボタンをクリックします

3: vagrant ユーザーの作成

手順 1: root ユーザーでログインします

ゲストOS
localhost login: root
Password: ******* ← vagrantと入力します。

手順 2: wheel グループに所属するユーザー vagrant を作成します

ゲストOS
[root@localhost ~]# useradd "vagrant" -g "wheel" -u 900
[root@localhost ~]# grep "vagrant" /etc/passwd

vagrant:x:900:10::/home/vagrant:/bin/bash

→ 上記のように表示されれば成功です。wheel グループとは root 特権を得ることのできるユーザーの属するグループです。"Big wheel(=大物、有力者)"に由来します。

手順 3: vagrant ユーザーのパスワードを設定します

ゲストOS
[root@localhost ~]# echo 'vagrant' | passwd --stdin "vagrant"

手順 4: wheel グループに sudo 実行の許可を与えます

ゲストOS
[root@localhost ~]# cat << EOF | tee -a /etc/sudoers
%wheel ALL=(ALL) NOPASSWD: ALL
Defaults:%wheel !requiretty
EOF

[root@localhost ~]# tail /etc/sudoers

:
省略
:
%wheel ALL=(ALL) NOPASSWD: ALL
Defaults:%wheel !requiretty

→ 上記の2行が追記されていることを確かめます。

手順 5: ログアウトします

ゲストOS
[root@localhost ~]# logout

手順 6: vagrant ユーザーでログインします

ゲストOS
localhost login: vagrant
Password: ******* ← vagrantと入力します。

4: root ユーザーの無効化

手順 1: passwd コマンドを使って root ユーザーをロックします

ゲストOS
[vagrant@localhost ~]$ sudo passwd -l "root"
[vagrant@localhost ~]$ sudo passwd -S "root"

→ "(Passwod locked.)"と表示されることを確かめます。

5: ネットワークの有効化

手順 1: コネクション名を確認します

ゲストOS
[vagrant@localhost ~]$ nmcli connection show

NAME  UUID                                  TYPE            DEVICE
eth0  488e0fce-a33e-47b5-b4aa-a6e6d20f7b00  802-3-ethernet  --

→ NAME 欄の値が eth0 であることを確かめます。

ifconfig コマンドは非推奨コマンドになりました。

手順 2: コネクション eth0 の自動接続を有効にします

ゲストOS
[vagrant@localhost ~]$ nmcli connection modify "eth0" "connection.autoconnect" "yes"
[vagrant@localhost ~]$ nmcli -f "connection.autoconnect" connection show "eth0"

connection.autoconnect:                 yes

→ 値が yes であることを確かめます。

手順 3: コネクションを有効にします

ゲストOS
[vagrant@localhost ~]$ nmcli connection up "eth0"

ifup / ifdown コマンドは非推奨コマンドになりました。

手順 4: IP アドレスが割り当てられていることを確かめます

ゲストOS
[vagrant@localhost ~]$ ip address show

手順 5: Yum を使って net-tools パッケージをインストールします

ゲストOS
[vagrant@localhost ~]$ sudo yum -y install "net-tools"
[vagrant@localhost ~]$ rpm -qa | grep "net-tools"

net-tools-2.0-0.17.20131004git.el7.x86_64

net-tools は非推奨パッケージになりました。ただし、Vagrant でネットワーク・インターフェースを追加などする時に必要となるためにインストールしています。

6: パッケージのアップデートと SELinux の無効化

手順 1: Yum を使って全てのパッケージを最新バージョンにアップデートにします

ゲストOS
[vagrant@localhost ~]$ sudo yum -y update

手順 2: SELinux を無効にします

ゲストOS
[vagrant@localhost ~]$ sudo sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[vagrant@localhost ~]$ grep "disabled" /etc/selinux/config

# disabled - No SELinux policy is loaded  
SELINUX=disabled

→ 値が disabled になっていることを確かめます。

手順 3: ゲスト OS(仮想マシン)を再起動します

ゲストOS
[vagrant@localhost ~]$ sudo systemctl reboot

→ ゲスト OS(仮想マシン)が再起動するまで待ちます。リブートのタイミングで最新のカーネルが読み込まれ、SELinux が無効に設定されます。

shutdown / reboot コマンドは非推奨コマンドになりました。

手順 4: ホストマシンから SSH を使ってゲスト OS(仮想マシン)にログインします

ホストマシン
PS> & ssh vagrant@localhost -p 2222

手順 5: SELinux が無効化されたことを確認します

ゲストOS
[vagrant@localhost ~]$ sudo /usr/sbin/sestatus

SELinux status:  disabled

→ disabled と表示されていることを確かめます。

7: OpenSSH Server の設定

手順 1: 設定ファイルを編集します

ゲストOS
[vagrant@localhost ~]$ sudo sh -c "cat <<EOF | tee -a /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
HostKey /etc/ssh/ssh_host_rsa_key
PermitRootLogin no
MaxSessions 10
ClientAliveCountMax 3
ClientAliveInterval 600
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
UseDNS no
EOF"

[vagrant@localhost ~]$ sudo tail -11 /etc/ssh/sshd_config

Port 22  
ListenAddress 0.0.0.0  
HostKey /etc/ssh/ssh_host_rsa_key  
PermitRootLogin no  
MaxSessions 10  
ClientAliveCountMax 3  
ClientAliveInterval 600  
PermitRootLogin no  
PubkeyAuthentication yes  
AuthorizedKeysFile .ssh/authorized_keys  
UseDNS no

手順 2: GitHub 上に公開されている Vagrant の公式リポジトリから秘密鍵をダウンロードします

ゲストOS
[vagrant@localhost ~]$ sudo curl -kL "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant" -o /etc/ssh/ssh_host_rsa_key
[vagrant@localhost ~]$ sudo cat /etc/ssh/ssh_host_rsa_key

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
+vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
-----END RSA PRIVATE KEY-----

手順 3: GitHub 上に公開されている Vagrant の公式リポジトリから公開鍵をダウンロードします

ゲストOS
[vagrant@localhost ~]$ sudo curl -kL "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub" -o /etc/ssh/ssh_host_rsa_key.pub
[vagrant@localhost ~]$ sudo cat /etc/ssh/ssh_host_rsa_key.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key

手順 4: ディレクトリを作成します

ゲストOS
[vagrant@localhost ~]$ mkdir -p ~/.ssh
[vagrant@localhost ~]$ ls -ld ~/.ssh/

drwxr-xr-x 2 vagrant wheel 4096 Xxx xx xx:xx /home/vagrant/.ssh/

手順 5: 公開鍵のシンボリックリンクを作成します

ゲストOS
[vagrant@localhost ~]$ ln -sf /etc/ssh/ssh_host_rsa_key.pub ~/.ssh/authorized_keys
[vagrant@localhost ~]$ ls -l ~/.ssh/authorized_keys

lrwxrwxrwx 1 vagrant wheel 29 Xxx xx xx:xx /home/vagrant/.ssh/authorized\_keys -> /etc/ssh/ssh_host_rsa_key.pub

手順 6: sshd サービスを再起動します

ゲストOS
[vagrant@localhost ~]$ sudo systemctl restart sshd
[vagrant@localhost ~]$ sudo systemctl status sshd

service コマンドは非推奨コマンドになりました。

手順 7: リスニングポートの状態を確認します

ゲストOS
[vagrant@localhost ~]$ sudo ss -lp | grep ssh

tcp    LISTEN     0      128                  *:ssh                   *:*        users:(("sshd",xxxx,3))

→ 上記のように表示されていれば成功です。

netstat コマンドは非推奨コマンドになりました。

8: VirtualBox Guest Addtions のインストール

手順 1: Yum を使って依存パッケージをインストールします

ゲストOS
[vagrant@localhost ~]$ sudo yum -y install gcc bzip2 make kernel-uek-devel
[vagrant@localhost ~]$ rpm -qa | egrep "gcc|bzip2|make|kernel-uek-devel"

libgcc-4.8.2-16.2.el7_0.x86_64
gcc-4.8.2-16.2.el7_0.x86_64
bzip2-1.0.6-12.el7.x86_64
bzip2-libs-1.0.6-12.el7.x86_64
make-3.82-21.el7.x86_64
kernel-uek-devel-3.8.13-44.el7uek.x86_64

手順 2: VirtualBox Guest Addtions のインストールメディアのイメージをダウンロードします

ゲストOS
[vagrant@localhost ~]$ vbox_version=$(curl -L "http://download.virtualbox.org/virtualbox/LATEST.TXT")
[vagrant@localhost ~]$ curl -L -O "http://download.virtualbox.org/virtualbox/${vbox_version}/VBoxGuestAdditions_${vbox_version}.iso"
[vagrant@localhost ~]$ ls -l

total 64400
-rw-r--r-- 1 vagrant wheel 65943552 Xxx xx xx:xx VBoxGuestAdditions_4.3.14.iso

手順 3: インストールメディアのイメージファイルをマウントします

ゲストOS
[vagrant@localhost ~]$ sudo mount -o loop ./VBoxGuestAdditions_${vbox_version}.iso /media/
[vagrant@localhost ~]$ df -h /media/

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       63M   63M     0 100% /media

手順 4: インストーラーを実行します

ゲストOS
[vagrant@localhost ~]$ sudo sh -c "/media/VBoxLinuxAdditions.run install"

:
省略
:
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module                   [  OK  ]
Building the shared folder support module                  [  OK  ]
Building the OpenGL support module                         [  OK  ]
Doing non-kernel setup of the Guest Additions              [  OK  ]
Starting the VirtualBox Guest Additions                    [  OK  ]
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.

手順 5: インストールメディアのイメージファイルをアンマウントします

ゲストOS
[vagrant@localhost ~]$ sudo umount /media/

手順 6: インストールメディアのイメージファイルを削除します

ゲストOS
[vagrant@localhost ~]$ rm -f ./VBoxGuestAdditions_${vbox_version}.iso

9: 仕上げ

手順 1: Yum のキャッシュを削除します

ゲストOS
[vagrant@localhost ~]$ sudo yum clean all

手順 2: コマンド履歴 .bash_history を削除します

ゲストOS
[vagrant@localhost ~]$ sudo rm -f /root/.bash_history
[vagrant@localhost ~]$ rm -f ~/.bash_history

手順 3: ディスクの空き領域をゼロデータで埋めます

ゲストOS
[vagrant@localhost ~]$ sudo dd if=/dev/zero of=/empty.dat bs=1M; sudo rm -f /empty.dat

手順 4: ゲスト OS(仮想マシン)をシャットダウンします

ゲストOS
[vagrant@localhost ~]$ sudo systemctl poweroff

→ ゲスト OS(仮想マシン)が完全にシャットダウンするまで待ちます。

shutdown / poweroff / halt コマンドは非推奨コマンドになりました

10: Boxファイルの作成

Vagrant には、vagrant package という Box 作成のためのコマンドが用意されていますが Windows 環境では上手く動作しません。そこで、ここでは別の方法で Box ファイルの作成を行います。

手順 1: 任意の場所に Box ファイル作成時に一時的に利用するフォルダーを作成します

ホストマシン
PS> & New-Item -Path "D:\vagrant\tmp\ol7" -ItemType "Directory" -Force

手順 2: 自作 Box のベースとするゲスト OS (仮想マシン)に割当てられた MAC アドレスを確認します

ホストマシン
PS> & vboxmanage showvminfo "vagrant-oracle-linux-release-7-x86_64" --machinereadable | Select-String -Pattern "macaddress1"

手順 3: 作成したフォルダー下に Vagrantfile という名前でファイルを作成します

ホストマシン
PS> New-Item -Path "D:\vagrant\tmp\ol7\Vagrantfile" -ItemType "File"
PS> Invoke-Item -Path "D:\vagrant\tmp\ol7\Vagrantfile"
D
Vagrant::Config.run do |config|
  # This Vagrantfile is auto-generated by 'vagrant package' to contain
  # the MAC address of the box. Custom configuration should be placed in
  # the actual 'Vagrantfile' in this box.
  config.vm.base_mac = "確認した MAC アドレス"
end

# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings
include_vagrantfile = File.expand_path('../include/_Vagrantfile', __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)

手順 4: 自作 Box のベースとするゲスト OS (仮想マシン)情報を OVF 形式で出力します

ホストマシン
PS> & vboxmanage export "vagrant-oracle-linux-release-7-x86_64" --output "D:\vagrant\tmp\ol7\box.ovf"

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully exported 1 machine(s).

手順 5: 任意の場所に Box ファイル出力用のフォルダーを作成します

ホストマシン
PS> & New-Item -Path "D:\vagrant\boxfiles" -ItemType "Directory" -Force

手順 6: 7-Zip を使って TAR 形式で圧縮します

ホストマシン
PS> & 7z a -ttar "D:\vagrant\boxfiles\vagrant-oracle-linux-release-7-x86_64.box" "D:\vagrant\tmp\ol7\*"

→ 自作 Box の完成です。

11: テスト用ゲスト OS(仮想マシン)の作成

手順 1: 作成した Box ファイルを登録します

ホストマシン
PS> & vagrant box add "oracle-linux-release-7-x86_64" "D:\vagrant\boxfiles\vagrant-oracle-linux-release-7-x86_64.box" -f
PS> & vagrant box list

oracle-linux-release-7-x86_64 (virtualbox)

→ 上記のように表示されれば成功です。

手順 2: 任意のディレクトリを作成しカレントディレクトリを移動します

ホストマシン
PS> New-Item -Path "$HOME/test_workspace" -ItemType "Directory"
PS> Set-Location -Path "$HOME/test_workspace"

手順 3: Vagrantfile を作ります

ホストマシン
PS> & vagrant init "oracle-linux-release-7-x86_64"
PS> Get-Item -Path "./Vagrantfile"


    ディレクトリ: C:\Users\Administrator\test_workspace


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2014/xx/xx     xx:xx       4958 Vagrantfile

手順 4: Vagrantfile を読み込みます

ホストマシン
PS> & vagrant reload

[default] VM not created. Moving on...

→ 上記のように表示されれば成功です。

手順 5: ゲスト OS(仮想マシン)を作成します

ホストマシン
PS> & vagrant up
PS> & vagrant status

Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

→ 上記のように表示されれば成功です。

手順 6: 作成したゲスト OS(仮想マシン)に SSH 接続で接続します

ホストマシン
PS> & vagrant ssh

Last login: Xxx Xxx xx xx:xx:xx xxxx from 10.0.2.2
[vagrant@localhost ~]$

→ 上記のようにプロンプトが表示されれば成功です。

手順 7: ゲスト OS(仮想マシン)からログアウトします

ゲストOS
[vagrant@localhost ~]$ logout

Connection to 127.0.0.1 closed.

Bento、Packer といった Box の作成を自動化するツールもありますが、地道に手を動かしてみることで、理解を深められると思います。

GitHub上の公式レポジトリ:Bento
https://github.com/opscode/bento

公式ウェブサイト:Packer
http://www.packer.io/

以上、Oracle Linux Release 7 の自作 Box の作成手順でした。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3