Vagrant BOX の作成

前の記事では、 の BOXファイルをネットからダウンロードして仮想環境を作成したので、今回は BOXファイルを作成し、仮想環境を構築します。

必要なOSのISOファイルのダウンロード

今回はCentOS7環境を作るのでCentOS7のISOファイルをダウンロードします。
https://www.centos.org/download/

VirtualBoxで仮想マシンを作成

VirtualBoxで新規に仮想マシンを作成します。
仮想マシン名:centos7_dev(判別できるような名前にする)
TypeはLinux
バージョンはRed Hat (64bit)
下記の値は、作りたいものによります
メモリは1024MB。
ファイルタイプはVDI、可変サイズにして、容量を20GBくらい。
開発用ならこのくらいの容量でいけると思うんだけど人それぞれかな

OSインストール

作成した仮想マシンの設定で、ストレージのCD/DVDの項目の対象ドライブにOSのisoを割り当てる。
VirtualBoxのマネージャーから作成した仮想マシンのアイコンをクリックし、上部の設定ボタンをクリックする。
ストレージの中にある光学ドライブにisoをマウントする。
仮想マシンを起動するとOSのインストールが始まる。
インストール完了後各種設定を行う。
とりあえずアップデート

ホスト側からsshでログインする(必要ならば)

この設定はあとで元に戻す必要があります。
VirtualBox上でコマンド入力するのは操作性が悪くめんどいんでこの設定を行い、Tera Termなどでその後の設定を行っています。

  1. 仮想マシンの設定を開く。
  2. ネットワークのアダプター1(NAT)を選択し、「高度」の内容を展開。
  3. 下部に表示される「ポートフォワーディング」ボタンを押してメニューを表示。
  4. 項目を新規追加。ホストポートに2222、ゲストポートに22を入力。他はそのままにしてOKボタンを押す。
  5. 設定画面のOKボタンを押す。
  6. 設定が完了したら Tera Term などでインストール時に設定したrootアカウントなどでログインする。
    IPアドレスはローカルマシン上にあるものとなるんで「127.0.0.1:2222」

    Vagrantユーザの作成と設定

    SSH接続するためのvagrantユーザーの登録を行う。

    パスワードは本家のドキュメントに従い、「vagrant」にしています

    sshの設定

    仮想マシンにログインし、ssh接続に必要な公開鍵を登録する。

    sudoの設定

    vagrantユーザーがパスワードなしでsudoを実行できるようにし、TTYなしで実行できるようにrequirettyを無効にする。

    vagrantユーザになって、確認する。

    各種無効化

    開発環境なのでselinuxは無効化。

    iptablesの無効化

    Guest Additionsのインストール

    仮想マシン(VirtualBox VM)のメニューのDevicesからInsert Guest Additions CD image …を選択する
    そして、それをマウントしてCD内のコマンドを実行する。

    最後に、仮想マシン(VirtualBox VM)のメニューのDevicesからCD/DVD Devicesを選択し、Remove disk from virtual driveを選択してGuest Additions CD imageを取り出す。

    アップデート

    VirtualBoxが更新されて最新版をインストールすると仮想マシンの「VirtualBox Guest Additions」のアップデートも必要になります。
    そのときは、上記のインストール方法を行えばアップデートできます。

    アンインストール方法

    /opt/VBoxGuestAdditions-<バージョン番号>/uninstall.sh

    上記ファイルをroot権限で実行

    BOX作成のための最適化

    MACアドレスとのマッピングを無効化する

    自分だけで使う場合には配布することはないのでこの作業は不要ですが、やっておけば誰かにBOXファイルを配布して起動したときにエラーがでません。
    最初、このことがわからずに、開発チーム内で起動するとエラーがでてなんでやってことになりました・・・・

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

    OS シャットダウン

    NATのポートフォワーディング設定の削除

    NATのポートフォワーディング設定をしている場合は設定情報を削除する

    1. 仮想マシンの設定を開く
    2. ネットワークのアダプター1(NAT)を選択し、「高度」の内容を展開。
    3. 下部に表示される「ポートフォワーディング」ボタンを押してメニューを表示。
    4. 作成した項目を選択してDelキーを押して削除。その後下部のOKボタンを押す。
    5. 設定画面のOKボタンを押す。

    以上でBOXの作成準備が完了

    Vagrant BOXファイルの作成

    コマンドプロンプトから、VagrantコマンドでBOXを作成する。「centos7_dev」はバーチャルボックスで作成した仮想マシン名。
    実行パスにBOXファイルが作成されるので任意の場所にコマンドで移動しておいた方がよい

    コマンドを実行すると、VirtualBoxからエクスポートされて、実行パス上に「package.box」ファイルが作成されます。

    Vagrant BOX に登録

    できあがった、「package.box」をVagrant BOXに追加します。

    確認

    仮想マシンを起動

    新たに作成したBOXで仮想マシンを起動します。
    vagrantファイルの作成

    vagrant init のあとにBOX名をいれることで、vagrantファイルの
    config.vm.box = “base”が
    config.vm.box = “vg_centos7_dev” となって作成されます。
    起動

    sshでログイン

    自分で作成したVagrant環境にsshでログインできるか確認してみます。
    「Git Bash」ショートカットからsshクライアントを起動する。
    vagrantfileのあるディレクトリに「cd」で移動。

    これで自前の Vagrant BOX 作成は完了です。
    自前でOSのインストールから行っているので Tera Term などですぐにログインもできます。
    vagrantファイルのネットワーク設定を変更していない場合は
    127.0.0.1:2222 へアクセスすればrootアカウントでログインできます。

    Vagrant Box の削除

    不要になったVagrant BOX を削除するには下記のコマンドで行います。

    Vagrant で作った仮想マシンから Box ファイルを作りなおす

    apacheをインストールするとか、yum updateしたあとに仮想マシンから新たにboxを作成するとかのときに
    vagrantファイルのあるパスから下記のコマンドを実行すると package.box ファイルができあがります。

    Vagrant Box の保存先を変更する

    Windows環境では、登録した Vagrant Boxファイルの保存先は、Cドライブの以下のパスに保存される。

    C:\Users\ユーザー名\.vagrant.d

    Vagrant Box の保存先を任意の場所に変更する。

    1. 「VAGRANT_HOME」を環境変数として登録する。環境変数の値を保存したいパスにする。
    2. コントロールパネル→プログラムと機能→Vagrantから右メニューで修復を行う。
    3. Windowsの再起動

    Windowsの場合は、OSの再起動をしないとパスの変更が反映されないので再起動を必ずすること。