- 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.cn' gem 'foodcritic', '~>2.2.0'
步骤 2 − 安装 gem。
vipin@laptop:~/chef-repo $ bundle install Fetching gem metadata from https://rubygems.org.cn/ ...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 定义了一组规则,并逐一检查配方代理。它包含与各个方面相关的多个规则:样式、连接性、属性、字符串、概率、搜索、服务、文件、元数据等。
广告