【问题标题】:chef-client 16 does not report how many resources got updatedchef-client 16 不报告更新了多少资源
【发布时间】:2021-02-09 09:10:37
【问题描述】:

我在 Ubuntu Focal 上使用 chef-client 16.8, 刚刚发现它的输出和之前的有很大不同,

# chef-client -o some_cookbook -l info
...
[2021-01-14T09:45:49+00:00] INFO: Skipping removal of unused files from the cache
[2021-01-14T09:45:49+00:00] INFO: Running report handlers
[2021-01-14T09:45:49+00:00] INFO: Report handlers complete
[2021-01-14T09:45:49+00:00] INFO: Chef::Compliance::Runner#enabled?: Chef InSpec profiles? false
[2021-01-14T09:45:49+00:00] INFO: Chef::Compliance::Runner#enabled?: audit cookbook? false
[2021-01-14T09:45:49+00:00] INFO: Sending resource update report (run-id: 27e9fbeb-118d-4fc3-8de3-8f5f32eae15d)

上一个(chef-client 13.12.3)是这样的:

...
  * execute[echo] action run (skipped due to only_if)
  * file[/tmp/etc/apache2/certs/.changed] action nothing (skipped due to action :nothing)

Running handlers:
Running handlers complete
Chef Client finished, 0/13 resources updated in 06 seconds

显然,chef-client 16 不显示颜色报告,也不显示更新了多少资源的统计数据。

有谁知道如何设置 chef-client 16 来显示哪些资源被更改了?

【问题讨论】:

  • 您只是以某种方式获取记录器,您需要 --force-formatter 或查看您的 client.rb 设置。参见github.com/chef/chef/pull/9751
  • @lamont 谢谢你,很好!让我安装一个厨师 16 并尝试一下。我认为没有人有这个问题,也没有期望得到答案。
  • @lamont 这就像一个魅力
  • @lamont 你能发表一个简单的答案吗?我会接受这个作为最终答案。

标签: chef-infra


【解决方案1】:

Chef 16.0 改变了记录器和格式化程序的工作方式:

https://github.com/chef/chef/pull/9751

这样做是为了解决人们在通过诸如 grep 之类的管道传输时输出从格式化程序神奇地更改为记录器时遇到的极其常见的问题:

chef-client | grep "resources updated"

(在没有任何其他配置的情况下,不执行管道通常会打印“资源已更新”行,而到 grep 的管道会丢失 tty,并且 chef-client 中的魔法会自动将输出切换到不再记录该行的记录器)

无法解决此问题并保持向后兼容性。为确保 config.rb 设置得到遵守、cli 设置可以覆盖它们以及命令行运行 chef-client 也将记录到 /var/log/messages 进行了大量工作。

格式化输出中的 tty 输出和记录器输出同时进入日志文件仍然是不可能的。

对于在 client.rb 中配置了日志记录的用户,现在可能需要 --force-formatter 选项:

chef-client --force-formatter

这通常也会记录到日志文件,但会将输出切换到格式化程序,如果用户已将日志记录设置到日志格式的日志文件,则会导致格式混合,这并不是任何人想要的,但解决这个问题是上述拉取请求末尾讨论的主题。由于 Chef 17 很可能由 Ruby 3.0 修复所主导,因此在 Chef 18 之前修复该错误的可能性不大。

【讨论】:

    【解决方案2】:

    我正在运行 chef 16.9.20,我没有这个问题。 Chef-client 运行后我得到了

    Chef Infra Client finished, 15/126 resources updated in 36 seconds
    

    【讨论】:

    • 谢谢,好像没有人遇到过这个问题。我将结束这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多