概要
PackerというプロビジョニングのBootstrapツールを使ってみます。
使ってみたメリット・デメリット
メリット
デメリット
個人的にデメリットの3つ目が痛いです。Ansible等でビルドに失敗すると、ビルドのやり直しが相当面倒くさいです。
環境
- OSX 10.8.5
- Packer 0.7.5
- VirtualBox 4.3.20
インストール
バイナリパッケージを直接ダウンロードしてPATHを通します。
https://www.packer.io/downloads.html
から自分のシステムのバイナリをダウンロードしてください。
$ wget https://dl.bintray.com/mitchellh/packer/packer_0.7.5_darwin_amd64.zip
解凍して移動します。公式のおすすめは~/packer
か/usr/local/packer
らしいです。今回は後者で。
$ unzip packer_0.7.5_linux_amd64.zip -d packer $ sudo mv packer /usr/local/
PATHを設定します。.bash_profile
に以下を追記してください。
export PATH=$PATH:/usr/local/packer/
反映します。
$ source .bash_profile
ちゃんと通っているか確認します。
$ packer version Packer v0.7.5
Boxの作成
今回は簡単のため、Gitにあがっているサンプルコードを使います。
https://github.com/shiguredo/packer-templates
今回はUbuntuのBoxを作ろうと思います。
$ git clone git@github.com:shiguredo/packer-templates.git $ packer-templates/ubuntu-14.04
template.json
を読むと分かるのですが、virtualbox用とvmware用があります。
今回はvirtualbox用しか使わないのでそれを指定してビルドします。
$ packer build -only=virtualbox-iso template.json
自動でVirtualBoxが起動してBoxを構築してくれます。
コマンド等も自動で入力されるので遠隔操作されてる感じにも見えます。
確認
作られたboxを実際にvagrant
で使ってみましょう
$ vagrant box add trusty64 ubuntu-14-04-x64-virtualbox.box
生成して起動してみます。
$ vagrant init trusty64 $ vagrant up
問題なく起動することが確認できます。お疲れ様でした。