Itamae(構成管理ツール)
Chefにインスパイアされた、日本発のシンプル・軽量な構成管理ツール。旧称はLightchef。
Chefとの違い
Chef風のRuby DSLを採用しつつも互換性はなく、Chef Serverのような集中管理サーバーは不要。CookbookやRoleといった複雑な概念を持たず、レシピ機能に特化したシンプルな実装になっている。べき等性を持ち、繰り返し実行しても安全に動作する。
DSLの例
package 'nginx' do
action :install
end
service 'nginx' do
action [:enable, :start]
end
実行方法
- ローカル実行:
itamae local recipe.rb - SSH経由のリモート実行:
itamae ssh --host example.jp recipe.rb - Vagrant:
itamae ssh --vagrant --host vm_name recipe.rb
基盤ライブラリ
OSごとの差異(パッケージマネージャの違い、サービス管理がsystemdかSysVinitかなど)の吸収は、Serverspecと共通の基盤ライブラリであるSpecinfraが担っている。同じ抽象の上に「状態を適用する側」と「状態を検証する側」が乗っている格好になる。
高速な代替実装
MRI(標準Ruby処理系)上で動くItamaeに対し、mrubyで書き直して単一バイナリ化・高速化した代替実装としてmitamaeがある。itamae sshは1つのリソースを処理するたびにSSH越しにコマンドを実行するため、リソース数が増えるとその往復が積み上がる。mitamaeはバイナリとレシピを対象ホストへ送り込んでローカル実行する方針を取ることで、この往復自体をなくしている。
構成管理ツールの中での位置づけ
ChefのRuby DSLを踏襲しつつ、Chef Serverなどの依存を排したシンプル路線。同種の思想をさらに推し進めたのが単一バイナリ版のmitamae。同じくagentlessなAnsibleとは、対象ノードにPython処理系を要求するか(Ansible)、SSH越しのコマンド実行だけで済ませるか(Itamae)という点で異なる。