Chef - Foodcritic



在沒有任何問題的情況下編寫好的食譜是一項相當困難的任務。但有一些方法可以幫助識別缺陷。Chef Cookbook 中的標記是可能的。Foodcritic 是實現這一目標的最佳方式之一,它試圖識別烹飪邏輯和風格中可能存在的問題。

Foodcritic 設定

步驟 1 − 新增 Foodcritic gem。

vipin@laptop:~/chef-repo $ subl Gemfile 
source 'https://rubygems.org' 
gem 'foodcritic', '~>2.2.0'

步驟 2 − 安裝 gem。

vipin@laptop:~/chef-repo $ bundle install 
Fetching gem metadata from https://rubygems.org/ 
...TRUNCATED OUTPUT... 
Installing foodcritic (2.2.0) 

Foodcritic Gem

步驟 1 − 對 Cookbook 執行 Foodcritic。

vipin@laptop:~/chef-repo $ foodcritic ./cookbooks/<Cookbook Name> 
FC002: Avoid string interpolation where not required: ./cookbooks/ 
mysql/attributes/server.rb:220 
...TRUNCATED OUTPUT... 
FC024: Consider adding platform equivalents: ./cookbooks/<Cookbook Name>/ 
recipes/server.rb:132 

步驟 2 − 生成詳細報告。

vipin@laptop:~/chef-repo $ foodcritic -C ./cookbooks/mysql 
cookbooks/<cookbook Name>/attributes/server.rb 
FC002: Avoid string interpolation where not required 
[...] 
85| default['<Cookbook Name>']['conf_dir'] = "#{mysql['basedir']}" 
[...] 
cookbooks/<Cookbook Name>/recipes/client.rb 
FC007: Ensure recipe dependencies are reflected in cookbook 
metadata 
40| end 
41|when "mac_os_x" 
42| include_recipe 'homebrew' 
43|end 
44|

工作方法

Foodcritic 定義了一組規則,並逐一檢查配方代理。它包含與各個方面相關的多個規則:樣式、連線性、屬性、字串、機率、搜尋、服務、檔案、元資料等。

廣告
© . All rights reserved.