Amazon EC2で使うイメージ(AMI)を構築する前に、ローカルで試したときの記録
- virtualbox(ローカル向け)
Packer でOSインストール〜初期設定をしたあと、Ansible で細かい設定を行う。
% brew install packer
% brew install ansible
Vagrant からダウンロード
※homebrew でも良いのかもしれない
https://galaxy.ansible.com/zzet/rbenv/
% ansible-galaxy install zzet.rbenv
ベースとなるvagrant用イメージ(box)をローカルでビルドする
- OSインストール
- 共通で必要なsoftwareを導入
- 必要なapt
- nginx
- rbenv
% packer build ubuntu-base.json
↑でできたboxをマウントする
% vagrant box add ubuntu boxes/ubuntu-16.04-amd64-virtualbox-ubuntu-base.box
% vagrant up
% vagrant halt
すると以下にovfファイルが生成されるので、これを次の packer build につかう。
~/.vagrant.d/boxes/ubuntu/0/virtualbox/box.ovf
% packer build ubuntu-app.json
できあがったら、vagrant up して動作確認
% vagrant box add ubuntu boxes/ubuntu-16.04-amd64-virtualbox-ubuntu-app.box
% vagrant up
% vagrant ssh
消すとき
% vagrant destroy
% vagrant box remove ubuntu
packer build をおこなうと、終わるまで結構時間がかかる(baseのイメージは数十分)。
Vagrantfile の以下をコメントアウトすれば vagrant provision で任意のymlを動かすことができるので、追加する場合はそこでテストができる。
# config.vm.provision "ansible" do |ansible|
# ansible.verbose = "v"
# ansible.playbook = "ansible/tmp.yml"
# end