はじめに
最近はInfrustructure as a Codeネタばかりですね。仕事でCapistranoでツールを作ったあと、Serverspecでテストコードを書こうとしています。次に構成管理ツールとしてpuppet、ansible、itamaeから選ぼうと思っていて、まずはその第一弾としてitamaeを使ってみます。
http://take-she12.hatenablog.com/entry/2016/05/1/120000take-she12.hatenablog.com
itamae
クックパッドの社員が作った、軽量版chefという扱い。chefは学習コストが高い(実際に使ったことはないから知らない)Puppetはエージェントあり、エージェントレスのAnsibleはyamlが気に食わないというひとがitamaeにたどり着くとか?このあたりの比較は全部触ってからだそうと思います。
install
MacBook-Air:techstudy take$ sudo gem install itamae Password: Fetching: net-telnet-0.1.1.gem (100%) Successfully installed net-telnet-0.1.1 Fetching: sfl-2.2.gem (100%) Successfully installed sfl-2.2 Fetching: specinfra-2.57.1.gem (100%) Successfully installed specinfra-2.57.1 Fetching: ansi-1.5.0.gem (100%) Successfully installed ansi-1.5.0 Fetching: schash-0.1.2.gem (100%) Successfully installed schash-0.1.2 Fetching: itamae-1.9.6.gem (100%) Successfully installed itamae-1.9.6 Parsing documentation for net-telnet-0.1.1 Installing ri documentation for net-telnet-0.1.1 Parsing documentation for sfl-2.2 Installing ri documentation for sfl-2.2 Parsing documentation for specinfra-2.57.1 Installing ri documentation for specinfra-2.57.1 Parsing documentation for ansi-1.5.0 Installing ri documentation for ansi-1.5.0 Parsing documentation for schash-0.1.2 Installing ri documentation for schash-0.1.2 Parsing documentation for itamae-1.9.6 Installing ri documentation for itamae-1.9.6 Done installing documentation for net-telnet, sfl, specinfra, ansi, schash, itamae after 4 seconds 6 gems installed
ちゃんとServerspecの内部で動いている「specinfra」も入ってますね。
動かす
今brewで入っているものを確認
MacBook-Air:itamae take$ brew list ansible libevent oniguruma postgresql ruby-build autoconf libyaml openssl rbenv tmux jq mysql pkg-config readline tree
レシピを書く
brew.rb
%w(ansible libevent oniguruma postgresql ruby-build autoconf libyaml openssl rbenv tmux jq mysql pkg-config readline tree).each do |pkg| package pkg do action :install only_if "brew info #{ pkg } | grep -qi 'Not Installed'" end end
参考
OSXのHomebrewでインストールするのをitamaeでやるようにした - すがブロ
実行する
MacBook-Air:itamae take$ itamae local brew.rb
INFO : Starting Itamae...
INFO : Recipe: /Users/take/itamae/brew.rb
インストールされていなければ実行するようにしているので、何も起こらなくて正常ですね。
おわりに
あとはGUIアプリにbrew caskを使えばいいのか?リモートサーバに対しても何らかの構築をitamaeで次回やりたいと思います。