深入探索 Chef 格式化器与自定义订阅器
1. 设置默认格式化器
当事件调度器调用我们在自定义格式化器中定义的三个事件方法时,自定义输出会出现在 Chef 运行的输出中。默认情况下,当不向chef - client传递-F选项时,Chef 使用的默认格式化器是doc格式化器,其代码位于lib/chef/formatters/doc.rb。正是这个格式化器生成了我们在执行 Chef 运行时看到的屏幕输出。
若要将自定义的awesome格式化器设为默认格式化器,可按以下步骤操作:
1.修改client.rb文件:在client.rb文件中添加相应内容,示例如下:
verify_api_cert true require "/tmp/part2_examples/awesome.rb" formatters [:awesome]这里我们重写了chef - client已知的格式化器数组。此处指定的格式化器名称必须与格式化器类定义中传递给cli_name方法的名称相匹配。如果在此数组中指定了多个格式化器,它们都会被使用,这可能会为事件产生重复结果,但此技术也可用于增强现有格式化器,而无需重新实现它。
2.运