packer
vagrant-chef

packerとvirtualboxで仮想環境構築(MacOS)

More than 3 years have passed since last update.


環境


  • MacOS X 10.9.4


作業


事前に入れとくやーつ


  • chef

  • virtualbox


homebrew が壊れていたので修復(後の作業で詰まったら見てもらえれば。)

$ cd `brew --prefix`

$ git fetch origin
$ git reset --hard origin/master

治った。

危うく挫折しそうだった。


packer-install

$ brew tap homebrew/binary

$ brew install packer
$ packer -v
Packer v0.6.1


chefインストール

$ curl -L https://www.opscode.com/chef/install.sh | sudo bash

$ sudo gem install chef --no-rdoc --no-ri
$ sudo gem install knife-solo --no-rdoc --no-ri


cookbook-nginx

cookbookを別のパスで所有している場合はスルーしてください。

$ knife solo init chef-repo

$ cd chef-repo

$ knife cookbook create test

$ cat /var/tmp/chef-repo/cookbooks/hoge/recipes/default.rb

yum_package "httpd" do
action :install
end

service 'httpd' do
supports :status => true, :restart => true, :reload => true
action [:start, :enable]
end

※ httpdを追加ます。


packer

依代となるOSたち

$ cd /var/tmp

$ git clone https://github.com/takayoshi/packer-vanilla-box.git
$ cd packer-vanilla-box/centos/6


chefの設定

provisionersをchef-soloで実行するように変更します。

$ vim centos6.json

[snip]
"provisioners": [{
"type": "chef-solo",
"cookbook_paths": ["/var/tmp/chef-repo/cookbooks/"],
"run_list": ["recipe[hoge]"],
"json": {
"nginx" : {
"path" : "/usr/local/nginx"
}
},
"prevent_sudo": false,
"skip_install": false
}]
[snip]

$ packer build -force -only=virtualbox-iso centos6.json

vagrantのboxファイルが作成されました。

==> Builds finished. The artifacts of successful builds are:

--> virtualbox-iso: 'virtualbox' provider box: ./artifacts/centos6-virtualbox.box

作成したboxファイルをcentos6という名前でvagrantに追加します。

vagrant box add centos6 artifacts/centos6-virtualbox.box

Vagrantファイルを作成します。(適度に変更してください。)

vagrant init  centos6

vagrantを立ち上げます

vagrant up

ログインしてhttpdがinstallされていることを確認します

vagrant ssh

$ /etc/init.d/httpd status
httpd は起動しています

===


参照元ページ

以下を参照しました。(いつもありがとうございます。)