我正在尝试使用 Chef 中的包管理器并安装 nginx 服务器,但每次我在客户端上运行 cooking 书时,它只是说
Recipe: nginx::default
* yum_package[nginx] 操作安装[2017-03-11T06:16:01-05:00] 信息:处理 yum_package[nginx] 操作安装(nginx::默认第 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]错误:异常处理程序完成 Chef 客户端失败。 05 分 44 秒更新了 1 个资源
甚至我尝试安装 epel-release 软件包,但因类似错误而被拒绝。
知道如何使用 CHEF 配方安装 nginx。
我也尝试使用 yum_package 但安装失败
yum_package "nginx" do
action :install
end
谢谢
最佳答案
这意味着您的存储库中没有名为 nginx
的包。如果您登录到要配置的计算机(例如使用 kitchen login
),您可以尝试搜索 nginx 包。
如果您的存储库中没有它,安装它的最佳方法是添加 nginx´s official repo使用 Chef 存储库资源(例如 Centos 的 yum_repository)或使用 Chef 资源 remote_file
下载 tarball。
如果您选择最后一个选项,请务必生成您下载的 tarball 的 sha256 并将其添加到 remote_file
资源中,这样您就可以防止 Chef 每次运行时下载该文件。
-编辑-
正如 Szymon 所说,您还可以使用 Nginx Recipe 来实现此目的,并且无需编写任何特殊 Recipe 。
关于nginx - Chef Recipe 无法在 RHEL 7.3 上安装 nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42735027/