- Chef 教程
- Chef - 主頁
- Chef - 概述
- Chef - 架構
- Chef - 版本控制系統設定
- Chef - 工作站設定
- Chef - 客戶端設定
- Chef - Test Kitchen 設定
- Chef - Knife 設定
- Chef - Solo 設定
- Chef - 食譜
- Chef - 食譜依賴項
- Chef - 角色
- Chef - 環境
- Chef - Chef-Client 作為守護程序
- Chef - Chef-Shell
- Chef - 測試食譜
- Chef - Foodcritic
- Chef - ChefSpec
- 使用 Test Kitchen 測試食譜
- Chef - 節點
- Chef - Chef-Client 執行
- 高階 Chef
- 動態配置食譜
- Chef - 模板
- Chef - 帶 Chef DSL 的純 Ruby
- Chef - 帶食譜的 Ruby Gem
- Chef - 庫
- Chef - 定義
- Chef - 環境變數
- Chef - 資料包
- Chef - 適用於資料包的指令碼
- Chef - 跨平臺食譜
- Chef - 資源
- 輕量級資源提供程式
- Chef - 藍圖
- Chef - 檔案與包
- Chef - 社群食譜
- Chef 有用資源
- Chef - 快速指南
- Chef - 有用資源
- Chef - 討論
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 定義了一組規則,並逐一檢查配方代理。它包含與各個方面相關的多個規則:樣式、連線性、屬性、字串、機率、搜尋、服務、檔案、元資料等。
廣告