chef/cookbookのsyntax checkをしてみる

f:id:komeiy:20150107164847j:plain

写真提供:donnierayjones

一定の基準でcookbookをチェックしないと作った人しかわからない状態になることが良くあるかと思いますが、cookbookとRubyのsyntax checkをすることである程度基準を設けたcookbookを保つ事が出来ると思います。

今回はcookbookのsyntax checkとしてfoodcriticを使ってみます。

foodcriticインストール

$ sudo gem install foodcritic

or

Gemfileに書いてbundle install

foodcritic使い方

foodcritic directoryです。

$ foodcritic site-cookbooks/
FC002: Avoid string interpolation where not required: site-cookbooks/aerospike/recipes/default.rb:19
FC002: Avoid string interpolation where not required: site-cookbooks/aerospike/recipes/default.rb:28
FC033: Missing template: site-cookbooks/aerospike/recipes/default.rb:9

FC001など番号が振られており内容と共に出力されます。詳細は以下から確認できます。

http://acrmp.github.io/foodcritic/#FC001

Chef versions: >= 0.7.12 から以下のような書き方の違いが出たりしてみます。

# Don't do this
version node[:mysql][:version]
version node['mysql']['version']

他にも、

# Don't do this
excute内のwget/curl
double quote ->  single quote

他にもreekやrubocopなども合わせてguardに設定を入れておくといいかなと思います。


シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)