よくわからなくなってきた
- 2013/8/18版
パシフィック・リムよかった。
開発環境など頭でこんがらがってるので整理するために書く。
多分ここに列挙してることは、2013/10には古くなる...
opscode
- でかい
- chefの総本山
- chefの
provider
,resource
の使い方がわからなくなる度に公式サイトに行く
Chef
- サーバー構築時、yum installでのパッケージインストールとかそういうのをcookbookという形でまとえておける
- 他人に開発環境の構築を頼むときにもVagrant向けなら
vagrant provision
しといてとかお願いできる - 人の温もりを感じ取りづらい
-
ステージの概念の把握が難しい、
ruby_block
の実行順序がfile
やdirectory
などと違うとかどうしろと... - chef-soloだけじゃなくchef-zeroがある
- そもそもchefは単独の環境で動作していることを前提として作られているわけじゃない
- 波動だと思うようになってきた
Vagrant
- VMWare, Virtualboxのcli toolをRubyでラッピングしたもの
- Chef連携可能
- Puppet連携可能
- AWS EC2やDigital Oceanなどのクラウドサービスに対するイメージ作成にもpluginで対応
- 1枚のVagrantfileで複数の仮想マシン対応可能
- すぐに立ち上げることができるboxesリソース一覧が公開されていて自分で用意せずともVagrantfileにbox指定すれば入れられて便利
- ただ、Dropboxを配信プロバイダとして利用してるboxだと転送量上限に引っかかってたりして落とせないことがある
- boxについてはveeweeを使えば自作できる
plugins
Vagrant omunibus plugin
- すでにchefが入ってるVagrant boxを使ったとしても、omunibusで指定したバージョンのchefをインストールしてくれる
- chefのバージョンによって使えなくなったcookbooksを適用したいときにも使える
Vagrant berkshelf plugin
- Vagrant boxでのchef cookbookを適用する場合に使うplugin
-
config.berkshelf.enabled = false
しとかないとpluginが有効な状態になってしまう...
Berkshelf
- RiotGamesが作ったChef cookbooksを管理するためのツール
- LoLバンザイ
- BerksfileというGemfileに似たパッケージ管理用のファイルを作って
berks --path cookbooks
すればcookbooks
以下にchef cookbook
をインストールしてくれる
site :opscode
cookbook "apt"
cookbook "rbenv", github: "fnichol/chef-rbenv"
cookbook "mysql"
- Berksfileに全てのcookbookリソースを記述するという形になっている
- ローカルにあるcookbookもBerksfileに記述できるんだけど、
site :opscode
の記述があるとopscodeを探しに行くので自作のcookbookがopscode communityにあるcookbookと名前が被ってると叱られる - resetさんとお話してみたい
packer
- Vagrantの作者がgoで作ってる仮想環境を準備するためのツール
- chef-solo対応のためのprovisioner作成PRが出されていて、Vagrantからの乗り換え感をひしひしと感じたり。
- EC2、Dropbox連携もできる
- まだ個人で使っていれば、という感じかもしれないけど、いずれ乗り換えることになりそう(opscode次第なんだろうか...)
capistrano
- キャピストラーノ(読み)
- デプロイで使う
- ローカルでgit cloneして固めて相手サーバーに投げつけるとかそういうの書ける
serverspec
- 既に出来上がっているサーバーの状態をチェックする
- rspec風(というかまんま)のテストコードを書いてチェックする
- 様々な環境(OS)に対応してる
- Vagrant対応もされている
- 更新頻度が早く、加速感がある...
test-kitchen
- opscodeが作ってる
- Vagrant使って仮想環境おったててcookbookを仮想環境上で実行してくれる
- CI向け。