MENU

Vagrant Box の作成 – boxファイル作成篇 –

サーバー用OSの基本的なセットアップは前回で完了しました。個別のソフトウエアに関しては別で補足することにして、一応ではありますが、今回でBoxファイルを完成させます。

目次

VirtualBox Guest Additionsのインストール

VirtualBoxのゲストOS用追加パッケージをインストールします。

Guest Additions はいろいろな便利機能があるのですが、ここではディレクトリを共有(同期)させる機能を使いたいので導入します。インストールすると、ホストOS(自分のPCのOS )とゲストOS(仮想マシンのOS)で共有ディレクトリ(フォルダ)を作成することができます。

仮想マシンのメニューから、「デバイス」 > 「 Guest Additions CD イメージの挿入 」を選択します。

イメージを挿入したあと、仮想マシンのコンソールで下記を順に実行していきます。

# yum install kernel-devel    // 必要なパッケージを先にインストール
# mkdir /media/cdrom    // CD イメージをマウントするディレクトリを作成
# mount -r /dev/cdrom /media/cdrom    // CD イメージをマウントする ( -r : 読み取り専用 )
# ls -l /media/cdrom    // マウントしたイメージファイルの中身を確認する
# sh /media/cdrom/VBoxLinuxAdditions.run    // VirtualBox Guest Additions をインストールする
# umount /media/cdrom    // CD イメージをアンマウントする
# ls -l /media/cdrom    // アンマウントされているか確認する ( ファイルが何も表示されなければOK. )
※ CD イメージの中身( 参考 )

udevルールの削除

Box 起動時のネットワーク設定のため、udev ルールをのファイルを /dev/null にリンクしておきます。

あまり詳しくはないのですが、udev はデバイスを使用する際に必要なデバイスファイルを自動で作成したり削除してくれたりするもののようです。

これが有効なままになっていると、ネットワークデバイスのMAC アドレスとデバイス名が固定化されてしまい、Box を使いまわした際に環境の異なる(デバイス名が違う)インターフェイスができてしまうようです。( eth0、eth1 など )

# ln -fs /dev/null /etc/udev/rules.d/70-persistent-net.rules

ネットワーク個別設定の削除

個別で設定されている UUID とIPV6 の設定を削除します。

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3    //ネットワークの設定ファイルを編集する
// ファイル内の以下の行を削除する
UUID = ****
IPV6~ = ****

Box作成の最適化

Box作成後のファイルサイズを小さくするための作業をしておきます。

yumで利用したファイルのキャッシュを削除します。

# yum clean all

次に、フラグメンテーションを解消します。

# dd if=/dev/zero of=/EMPTY bs=1M
// dd: `/EMPTY` の書き込みエラー: デバイスに空き領域がありません
// と表示されますが、問題ありません。
 
# rm -f /EMPTY

ここまででサーバー OS の設定は完了です。このままシャットダウンさせます。

# shutdown -h now

sshネットワーク設定の変更

サーバー OS インストール編で行ったSSH接続用のポートフォワーディング設定を削除します。

仮想マシンの「設定」>「ネットワーク」>「高度」>「ポートフォワーディング」をクリックします。前に設定したルールがあると思いますので、右の赤い「×」ボタンをクリックして削除します。

ポートフォワード設定内容

削除後は「OK」で設定を抜けます。

Boxファイルを作成する

VagrantBox を作成するためのゲスト OS の設定が終わったので、ここからは Box を作成していきます。

PowerShell を起動し、任意のディレクトリ( フォルダ)に移動します。

$ cd xxxx    ( xxxx はBox作成用のディレクトリの場所です。)

VagrantのコマンドでBoxファイルを作成します。

$ vagrant package --base CentOS7.7-x86_64-1908 --output CentOS7.7-x86_64.box
( --base: 対象となる仮想マシンの名前、--output: 作成する Box の名前 )

上記のコマンドを実行すると移動したディレクトリに「CentOS7.7-x86_64.box」という名前のBoxファイルが作成されているはずです。

次回、作成したBoxファイルをWindows環境で使えるようにします。

以上でVagrantのBoxファイルの作成は完了です。お疲れさまでした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次