【问题标题】:How to let Chef output logs during execution of package command with action :install?如何让厨师在执行带有操作的包命令期间输出日志:安装?
【发布时间】:2013-02-25 00:42:00
【问题描述】:

我正在使用 Chef 进行部署。 我有一个简单的食谱,如下所示:

package 'my-package' do
    action :install
end

当 chef-client 在 Debian 上运行这个配方时,它不会告诉标准输出中 apt-get 的任何进展。 如果 apt-get 无法安装软件包,我无法从 chef-client 的日志中获取有关失败的任何信息。 我还检查了 /var/log/apt/term.log 但没有安装日志。

这里是 chef-client 的日志输出:

[Sat, 09 Mar 2013 22:24:57 +0900] INFO: Processing package[my-package] action install (my-package::default line 19)

================================================================================
Error executing action `install` on resource 'package[my-package]'
================================================================================

Chef::Exceptions::Exec
----------------------
apt-get -y install my-package=3.0.0 returned 100, expected 0

如何让 Chef 输出 apt-get 的安装进度? 我应该使用执行命令而不是包命令吗? 任何建议将不胜感激。 谢谢。

【问题讨论】:

  • 这不是您问题的答案,但要查看发生的确切错误,您可以 ssh 到该机器并尝试手动启动apt-get -y install my-package=3.0.0。绝对不要使用execute 资源来安装包。
  • 谢谢你,德拉科。我目前正在通过再次手动运行 apt-get 作为您的评论来检查问题。这有点无意义,因为Jenkins调用chef-client,我想尽可能多地存储构建日志的所有信息。

标签: chef-infra


【解决方案1】:

您可以向主客户提供-l debug 选项。

【讨论】:

    【解决方案2】:

    这是一个非常特定于 Debian/Ubuntu 的问题。您的 apt-cache 已过期。你要么需要运行

    apt-get update -y
    

    在目标机器上,或在 run_list 的前面包含 apt cookbook

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2012-09-15
      相关资源
      最近更新 更多