【问题标题】:chef recipe unable install nginx on RHEL 7.3厨师食谱无法在 RHEL 7.3 上安装 nginx
【发布时间】:2019-11-02 22:28:38
【问题描述】:

我正在尝试在 chef 中使用包管理器并安装 nginx 服务器,但每次我在客户端上运行烹饪书时,它只是在说

 Recipe: nginx::default

* yum_package[nginx] action install[2017-03-11T06:16:01-05:00] INFO: Processing yum_package[nginx] action install (nginx::default line 11)

 * No candidate version available for nginx
 ================================================================================
 Error executing action `install` on resource 'yum_package[nginx]'
 ================================================================================

 Chef::Exceptions::Package
 -------------------------
 No candidate version available for nginx

 Resource Declaration:
 ---------------------
 # In /var/chef/cache/cookbooks/nginx/recipes/default.rb

  11: package "nginx" do
  12:   action :install
  13: end
  14:

 Compiled Resource:
 ------------------
 # Declared in /var/chef/cache/cookbooks/nginx/recipes/default.rb:11:in `from_file'

 yum_package("nginx") do
   package_name "nginx"
   action [:install]
   retries 0
   retry_delay 2
   default_guard_interpreter :default
   declared_type :package
   cookbook_name "nginx"
   recipe_name "default"
   flush_cache {:before=>false, :after=>false}
 end

 Platform:
 ---------
 x86_64-linux

[2017-03-11T06:16:29-05:00] 信息:在重新引发异常之前运行排队的延迟通知

运行处理程序: [2017-03-11T06:16:29-05:00] 错误:运行异常处理程序 运行处理程序完成 [2017-03-11T06:16:29-05:00] 错误:异常处理程序完成 厨师客户端失败。 1 个资源在 05 分 44 秒内更新

甚至我尝试安装 epel-release 软件包,但被拒绝并出现类似错误。

知道如何使用 CHEF 配方安装 nginx。

我也尝试使用 yum_package 但安装失败

 yum_package "nginx" do
    action :install
 end

谢谢

【问题讨论】:

    标签: nginx chef-infra rhel7


    【解决方案1】:

    这意味着您的存储库中没有名为 nginx 的包。如果您登录到您要配置的机器(例如kitchen login),您可以尝试搜索包nginx。

    如果它不在您的存储库中,最好的安装方法是添加 nginx´s official repo 和 Chef 存储库资源(如 Centos 的 yum_repository)或下载带有 Chef 资源 remote_file 的压缩包。

    如果您选择最后一个选项,请确保生成您下载的 tarball 的 sha256 并将其添加到 remote_file 资源中,这样您可以防止 Chef 每次运行时下载文件。

    -编辑-

    正如 Szymon 所说,您也可以为此使用 Nginx 食谱,而无需编写任何特殊配方。

    【讨论】:

    • 说实话,没有必要编写任何代码来处理存储库。官方 chef_nginx 食谱can handle this。只需阅读文档。
    【解决方案2】:

    作为discussed here,你可以使用官方的NGINX chef cookbook 或者在安装NGINX 之前安装epel-release:

    if platform_family?('rhel')
      package 'epel-release'
    end
    
    if platform_family?('debian')
      apt_update 'update'
    end
    
    package 'nginx'
    

    【讨论】:

      猜你喜欢
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多