vagrant と chef-solo と serverspec と
去年の今頃だったかに TDD なインフラが云々、とか言ってましたが (ry
それは良いとして、昨晩から云々してた部分について纏めを作っておきます。
vagrant
一番の敗因は BIOS で VT 関連が disable になってたことでした。当然ながら /proc/cpuinfo には vmx なフラグがセットされてます。
vagrant 自体は以下から v1.1.5 なでびあんパケジを取得して dpkg で導入。
で、sahara 使う場合は
にある方法で無問題だったようです。
で、以下なコマンドで vagrant box add しています。
$ vagrant box add base http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.3-x86_64-v20130101.box
また、最新な状態の Vagrantfile が以下です。
Vagrant.configure("2") do |config| config.vm.box = "base" config.vm.network :private_network, ip: "192.168.33.10" config.vm.provider :virtualbox do |vb| # Don't boot with headless mode vb.gui = true # Use VBoxManage to customize the VM. For example to change memory: vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] #vb.customize ["modifyvm", :id, "--memory", "1024"] end end
あ、あと ~/.ssh/config に以下を追加しています。
host 192.168.33.10 Identityfile ~/.vagrant.d/insecure_private_key User vagrant
これで Vagrant の kickoff と ssh での接続はできる模様。sahara はあまりきちんと動作の確認していないですね。こちらは別途、ということにて。
chef-solo
つうか chef は gem で導入していますね。knife-solo は以下な形で導入してますね。
$ gem i knife-solo --pre --no-ri --no-rdoc
あとは入門 ChefSolo な手順で良いのかどうか。こちらも再度確認必要ですね。
- knife solo init chef-repo
- 今、これ動かないみたいなので以下で代替の必要ある模様です
- knife kitchen chef-repo
- git で云々
- cd chef-repo
- git init && git add . && git commit -m 'initial commit'
- knife solo prepare 192.168.33.10
- git で云々
- git add nodes/192.168.33.10.json
- git commit -m 'add node json file'
- クックブック作成 & レシピ編集
- knife cookbook create nginx -o cookbooks
- 以下を編集
- cookbooks/nginx/recipes/default.rb
- nodes/192.168.33.10.json
- cookbooks/nginx/templates/default/nginx.conf.erb 追加
- knife solo cook 192.168.33.10 実行
あ、対象となるホストには少なくとも rsync は導入されてる必要があるようです。ssh はデフォで導入されてるはず、ってのは大丈夫なのかな。
ちなみに nginx 導入の場合は以下を云々しとく必要があるようです。
$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
例えば Gitlab を云々、な場合 chef だけだと微妙なはずなんですが、その先どうするべきなのかな (宿題