rakeeee
rakeeee

Reputation: 1073

chef recipe unable install nginx on RHEL 7.3

I am trying use the package manager in chef and installing nginx server but every time i ran the cook book on my client it is just saying that

 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] INFO: Running queued delayed notifications before re-raising exception

Running handlers: [2017-03-11T06:16:29-05:00] ERROR: Running exception handlers Running handlers complete [2017-03-11T06:16:29-05:00] ERROR: Exception handlers complete Chef Client failed. 1 resources updated in 05 minutes 44 seconds

And even i tried to install epel-release packages but denied with similar errors.

Any idea how we could install nginx with CHEF recipe.

I tried also using yum_package but had no luck in installing

 yum_package "nginx" do
    action :install
 end

Thanks

Upvotes: 2

Views: 1224

Answers (2)

user11822923
user11822923

Reputation:

As discussed here, you can use official NGINX chef cookbook or just install epel-release before installing NGINX:

if platform_family?('rhel')
  package 'epel-release'
end

if platform_family?('debian')
  apt_update 'update'
end

package 'nginx'

Upvotes: 1

Navarro
Navarro

Reputation: 1384

This means there is no package named nginx in your repositories. If you log into the machine you want to provision (With kitchen login, for example), you can try to search package nginx.

The best way to install it if it is not in your repositories is either adding nginx´s official repo with a chef repository resource (Like yum_repository for Centos) or downloading the tarball with Chef resource remote_file.

If you choose the last option, be sure to generate a sha256 of the tarball you download and add it to the remote_file resource, so among other things you prevent Chef from downloading every run the file.

-Edit-

As Szymon says, you can also use the Nginx cookbook for this and don't write any special recipe.

Upvotes: 1

Related Questions