軽量・高速版 Chef 「Itamae」 プロビジョニングツールの学習コスト低下。Berkshelfからの解放。Chef Solo から Chef Zero への移行からの解放 #devops #itamae
概要
プロビジョニングツール Itamae について。
概要説明と、インストール・動作確認までを行います。
特徴
基本的な特徴
- Ruby 製
- 設定は Ruby の 内部DSL
- 簡単で学習コストを下げた、軽量な Chef といった立ち位置
- 早い
- Vagrant 対応の vagrant-itamae plugin がある
- Chef と似た概念が多いため、 Chef からの移行が容易
- 全く同じ記述ができる部分が多くある
- クックパッド社 ryotarai 氏作
- クックパッド社の本番環境でも利用されている
注目すべき特徴
- 日本発なので日本語で最新情報の収集が期待できる
- レシピは Bundler + gem で管理。 Chef + Berkshelf の苦労から解放される
- Chef Solo => Chef Zero の移行を忘れることができる
どうでもいい心配
- クックパッド社内で「レシピ」の話題を出した時に、 Itamae の話か Chef の話か、本業のビジネスドメインの話か混乱しそう
インストール
$ gem install itamae --no-ri --no-doc
$ itamae version
Itamae v1.0.1
試行
レシピ作成(recipe.rb)
Chefと全く同じレシピ!
recipe.rb
package "tree" do
action :install
end
ローカルプロビジョニングの実行
$ itamae local recipe.rb
INFO : Starting Itamae...
INFO : Recipe: /home/vagrant/test/recipe.rb
INFO : package[tree]
INFO : action: install
INFO : installed will change from 'false' to 'true'
インストール結果の確認
# 動作確認用に私の自作 gem , defoker をインストール(要 Ruby 2.0 以上)
$ gem install defoker --no-ri --no-doc
Fetching: defoker-0.0.7.gem (100%)
Successfully installed defoker-0.0.7
1 gem installed
$ defoker v
"0.0.7"
# 20141101 から 90日分のフォルダを作成
$ defoker days 20141101 -c 90 -a itamae
$ ls
20141101_itamae 20141124_itamae 20141217_itamae 20150109_itamae
20141102_itamae 20141125_itamae 20141218_itamae 20150110_itamae
20141103_itamae 20141126_itamae 20141219_itamae 20150111_itamae
20141104_itamae 20141127_itamae 20141220_itamae 20150112_itamae
20141105_itamae 20141128_itamae 20141221_itamae 20150113_itamae
20141106_itamae 20141129_itamae 20141222_itamae 20150114_itamae
20141107_itamae 20141130_itamae 20141223_itamae 20150115_itamae
20141108_itamae 20141201_itamae 20141224_itamae 20150116_itamae
20141109_itamae 20141202_itamae 20141225_itamae 20150117_itamae
20141110_itamae 20141203_itamae 20141226_itamae 20150118_itamae
20141111_itamae 20141204_itamae 20141227_itamae 20150119_itamae
20141112_itamae 20141205_itamae 20141228_itamae 20150120_itamae
20141113_itamae 20141206_itamae 20141229_itamae 20150121_itamae
20141114_itamae 20141207_itamae 20141230_itamae 20150122_itamae
20141115_itamae 20141208_itamae 20141231_itamae 20150123_itamae
20141116_itamae 20141209_itamae 20150101_itamae 20150124_itamae
20141117_itamae 20141210_itamae 20150102_itamae 20150125_itamae
20141118_itamae 20141211_itamae 20150103_itamae 20150126_itamae
20141119_itamae 20141212_itamae 20150104_itamae 20150127_itamae
20141120_itamae 20141213_itamae 20150105_itamae 20150128_itamae
20141121_itamae 20141214_itamae 20150106_itamae 20150129_itamae
20141122_itamae 20141215_itamae 20150107_itamae
20141123_itamae 20141216_itamae 20150108_itamae
# 月単位のフォルダに分割
$ defoker mv_month
$ ls
201411 201412 201501
# 年単位のフォルダに分割
$ defoker mv_year
$ ls
2014 2015
# Itamae でインストールした tree で確認
.
|-- 2014
| |-- 11
| | |-- 01_itamae
| | |-- 02_itamae
| | |-- 03_itamae
| | |-- 04_itamae
| | |-- 05_itamae
| | |-- 06_itamae
| | |-- 07_itamae
| | |-- 08_itamae
| | |-- 09_itamae
| | |-- 10_itamae
| | |-- 11_itamae
| | |-- 12_itamae
| | |-- 13_itamae
| | |-- 14_itamae
| | |-- 15_itamae
| | |-- 16_itamae
| | |-- 17_itamae
| | |-- 18_itamae
| | |-- 19_itamae
| | |-- 20_itamae
| | |-- 21_itamae
| | |-- 22_itamae
| | |-- 23_itamae
| | |-- 24_itamae
| | |-- 25_itamae
| | |-- 26_itamae
| | |-- 27_itamae
| | |-- 28_itamae
| | |-- 29_itamae
| | `-- 30_itamae
| `-- 12
| |-- 01_itamae
| |-- 02_itamae
| |-- 03_itamae
| |-- 04_itamae
| |-- 05_itamae
| |-- 06_itamae
| |-- 07_itamae
| |-- 08_itamae
| |-- 09_itamae
| |-- 10_itamae
| |-- 11_itamae
| |-- 12_itamae
| |-- 13_itamae
| |-- 14_itamae
| |-- 15_itamae
| |-- 16_itamae
| |-- 17_itamae
| |-- 18_itamae
| |-- 19_itamae
| |-- 20_itamae
| |-- 21_itamae
| |-- 22_itamae
| |-- 23_itamae
| |-- 24_itamae
| |-- 25_itamae
| |-- 26_itamae
| |-- 27_itamae
| |-- 28_itamae
| |-- 29_itamae
| |-- 30_itamae
| `-- 31_itamae
`-- 2015
`-- 01
|-- 01_itamae
|-- 02_itamae
|-- 03_itamae
|-- 04_itamae
|-- 05_itamae
|-- 06_itamae
|-- 07_itamae
|-- 08_itamae
|-- 09_itamae
|-- 10_itamae
|-- 11_itamae
|-- 12_itamae
|-- 13_itamae
|-- 14_itamae
|-- 15_itamae
|-- 16_itamae
|-- 17_itamae
|-- 18_itamae
|-- 19_itamae
|-- 20_itamae
|-- 21_itamae
|-- 22_itamae
|-- 23_itamae
|-- 24_itamae
|-- 25_itamae
|-- 26_itamae
|-- 27_itamae
|-- 28_itamae
`-- 29_itamae