PackerでOVA作成シリーズです。
Part3でESXi4用のOVAがきれいに作成できなかったので、VirualBox 4.3.12
にESXi5の
Nested Virtualization環境を構築して、PackerのESXi5ドライバーを使ってみます。
Vagrant and Chef on Windowsを参考にWindows上でVagrantを動かすところまで構築します。また、Minttyを使いやすくしてWindows7からLinuxを操作を便利にします。
VirtualBoxのインストール
VirtualBoxはダウンロードページから、最新バージョンの4.3.12をダウンロードしてインストーラーを実行します。
以下の場所にインストールされます。
C:\Program Files\Oracle\VirtualBox |
Vagrantのインストール
Vagrantはダウンロードページから、最新バージョンの1.6.3をダウンロードしてインストーラーを実行します。
インストールディレクトリは、以下の場所に指定します。
C:\opt\HashiCorp\Vagrant |
Windows版のVagrantには、MinGW,Mintty,RubyInstallerが同梱されています。
C:\opt\HashiCorp\Vagrant\embedded |
Windowsなので仕方なく再起動すると、PATHが通って使えるようになります。
$ vagrant -v |
Mintty
Vagrantに同梱されているMinttyを起動してvagrant up
したあと、SSHコマンドを使うので使いやすい設定をします。
Minttyは以下の場所にインストールされます。
C:\opt\HashiCorp\Vagrant\embedded\bin\mintty.exe |
起動後ホームディレクトリに移動できるように、ショートカット作成を作成して、プロパティのリンク先にloginを追加します。
C:\opt\HashiCorp\Vagrant\embedded\bin\mintty.exe /bin/bash --login |
Windows8 Proにvargrantを入れてみる(その1)を参考に、
作成したショートカットからMinttyを起動して、.minttyrcの設定をします。
$ cat << __EOF__ > ~/.minttyrc |
プロジェクトの作成
Vagrantfileを配置する作業ディレクトリを作成します。
$ mkdir -p ~/vagrant_apps/ubuntu-14.04 |
boxのダウンロード
Vagrantのboxは、Dockerでお世話になっている、phusionのopen-vagrant-boxesを使用します。
$ vagrant init phusion/ubuntu-14.04-amd64 |
リソースが少ないので、CPUコアを1に指定します。
VAGRANTFILE_API_VERSION = "2" |
vagrant up
しまず。
$ vagran up |
MinGWのパッケージを追加
VagrantでインストールされるMinGWには、viやsshが含まれていないため、MinGWをインストールした後コピーして使います。
MinGWから、mingw-get-setup.exeをダウンロードして実行します。以下の場所にインストールします。
C://opt/MinGW |
Minttyを起動してMinGWの中身を、Vagrant/embedded
にコピーして不足しているパッケージを追加します。
$ cp -r /c/opt/MinGW/. /c/opt/HashiCorp/Vagrant/embedded/ |
mingw-getは以下のディレクトリに配置されます。
$ which mingw-get |
mingw-getの設定ファイルを編集し、MSYSのPATHをVagrantにコピーした場所に指定します。
defaults.xml
<!-- |
profile.xml
<!-- |
min-getの更新をします。
$ cd /c/opt/HashiCorp/Vagrant/embedded/var/lib/mingw-get/data/ |
sshやvimのパッケージをmingw-get install
します。
$ mingw-get install msys-openssl msys-openssh |
.bash_profileと.bashrc
環境設定ファイルを作成します。
~/.bash_profileに、VirtualBoxのコマンドのパスを通します。
export PATH=/c/Program\ Files/Oracle/VirtualBox/:$PATH |
vimのエイリアスを設定します。
alias vi='vim' |
環境設定ファイルを再読込します。
$ source ~/.bash_profile |
SSHの設定
vagrant ssh
でなく、MinGWのsshを使うため、.ssh/config
に設定情報を追加します。
$ mkdir -p ~/.ssh |
SSHでVagrantのVMにログインします。
$ ssh trusty |
Git for Windows
Git for Windowsから最新バージョンの1.9.4をダウンロードしてインストールします。
c:\opt\Git |
MinGWから、WindowsにインストールしたGitを使えるようにするため、以下の設定をします。
Adjusting your PATH environment
Use Git from Windows Command Prompt
Choosing the SSH executable
Use OpenSSH
Checieout as-is, commit Unix-style line endings
Minttyを起動して、gitの確認をします。
$ which git |
ディレクトリ構成
状況によってVirtualBox VMs
の場所が、Windowsのホームディレクトリだったり、ルートにあったりしますが、
最終的に、ディレクトリ構成は以下のようにしました。
.vagrant.dは、Windowsのホームディレクトリにあります。
C:\Users\masato\.vagrant.d |
そのほかのVagrantやVirtualBoxの設定やboxは、MinGWのホームディレクトリにあります。
C:\opt\HashiCorp\Vagrant\embedded\home\masato |
まとめ
Linuxを主に使っていると感じませんが、OSXやWindowsで作業しているとVagrantはとても便利です。
次回はVagrantのVirtualBoxへ、NestedのESXiをインストールした後、Packer作業用のUbuntuからOVAを作成してみます。