Chef Server 12 upgrade failure


#1

We are trying to upgrade to Chef Server 12 (from 11.1.1), and ran into this error when running the "chef-server-ctl chef12-upgrade-download” command (which I think is just doing “knife download /“):

ERROR: Chef::ChefFS::FileSystem::NotFoundError: Chef::ChefFS::FileSystem::NotFoundError
knife download failed with pid 9244 exit 100

It was in the middle of downloading a few versions of a cookbook, which I can download successfully using knife cookbook download.

From what we can tell there’s no errors in the chef server log at all.

Any suggestions/ideas?

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773


#2

Hi Michael,

You’re correct that it’s using knife download. To give you more insight
into the process, all the upgrade code is here:

Look at the chef12_upgrade* files and the open_source_chef12_upgrade.rb
file.

Specifically, the knife download is run here:

I don’t know why it would fail during the upgrade but work for you
locally. On the upgrade it is using the bundled in chef-client that is
used to configure the chef server, so perhaps it is a difference in
client version. You can, if you explore the upgrade code, replicate
manually what the upgrade code is doing using your local chef-client and
then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that works?
I think I’ve seen this error crop up for others but I’m not sure what
causes it. Also what versions are your Chef 11 server and Chef 12 server
package?

Thanks,

Mark

Michael Hart mailto:michael.hart@arcticwolf.com
March 4, 2015 at 12:46 PM
We are trying to upgrade to Chef Server 12 (from 11.1.1), and ran into
this error when running the "chef-server-ctl chef12-upgrade-download”
command (which I think is just doing “knife download /“):

ERROR: Chef::ChefFS::FileSystem::NotFoundError:
Chef::ChefFS::FileSystem::NotFoundError
knife download failed with pid 9244 exit 100

It was in the middle of downloading a few versions of a cookbook,
which I can download successfully using knife cookbook download.

From what we can tell there’s no errors in the chef server log at all.

Any suggestions/ideas?

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773


#3

Hi Mark,

Thanks for the response. We have chef server 11 and 12 installed on the same node, which is arguably not the best approach but so be it.

So versions:
Chef Server 11.1.1-1
Chef Server 12.0.5-1
Chef Client 11.16.4-1

We trimmed down the amount of data in chef significantly and am running another export again. I dare not say that it’s going well for fear of jinxing it, except that it’s been running for > 6 hours.

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773

From: Mark Mzyk
Reply-To: "chef@lists.opscode.commailto:chef@lists.opscode.com"
Date: Thursday, March 5, 2015 at 11:25
To: "chef@lists.opscode.commailto:chef@lists.opscode.com"
Subject: [chef] Re: Chef Server 12 upgrade failure

Hi Michael,

You’re correct that it’s using knife download. To give you more insight into the process, all the upgrade code is here: https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here: https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you locally. On the upgrade it is using the bundled in chef-client that is used to configure the chef server, so perhaps it is a difference in client version. You can, if you explore the upgrade code, replicate manually what the upgrade code is doing using your local chef-client and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that works? I think I’ve seen this error crop up for others but I’m not sure what causes it. Also what versions are your Chef 11 server and Chef 12 server package?

Thanks,

Mark

[cid:part1.09020607.08000001@chef.io]
Michael Hartmailto:michael.hart@arcticwolf.com
March 4, 2015 at 12:46 PM
We are trying to upgrade to Chef Server 12 (from 11.1.1), and ran into this error when running the "chef-server-ctl chef12-upgrade-download” command (which I think is just doing “knife download /“):

ERROR: Chef::ChefFS::FileSystem::NotFoundError: Chef::ChefFS::FileSystem::NotFoundError
knife download failed with pid 9244 exit 100

It was in the middle of downloading a few versions of a cookbook, which I can download successfully using knife cookbook download.

From what we can tell there’s no errors in the chef server log at all.

Any suggestions/ideas?

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773


#4

Having it on the same node is fine; that’s the default case the upgrade
process was designed for. Hopefully it all goes well this time. If it
does not, let us know and we’ll help you get it sorted. The upgrade is
taking as long as it is because the process is download all the
data/transform it to Chef 12 format/upload all the data to a new server.
The more data you have the longer it’ll take (having many cookbook
versions is a particular culprit here). It was done this way so that all
your data moved through the API so we could ensure it would be in a good
format on the Chef 12 server. We recognized that this might take a
while, which is why the chef12-upgrade-* commands exist to give you
finer control over the process.

  • Mark

Michael Hart mailto:michael.hart@arcticwolf.com
March 5, 2015 at 3:35 PM
Hi Mark,

Thanks for the response. We have chef server 11 and 12 installed on
the same node, which is arguably not the best approach but so be it.

So versions:
Chef Server 11.1.1-1
Chef Server 12.0.5-1
Chef Client 11.16.4-1

We trimmed down the amount of data in chef significantly and am
running another export again. I dare not say that it’s going well for
fear of jinxing it, except that it’s been running for > 6 hours.

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773

From: Mark Mzyk
Reply-To: "chef@lists.opscode.com mailto:chef@lists.opscode.com"
Date: Thursday, March 5, 2015 at 11:25
To: "chef@lists.opscode.com mailto:chef@lists.opscode.com"
Subject: [chef] Re: Chef Server 12 upgrade failure

Hi Michael,

You’re correct that it’s using knife download. To give you more
insight into the process, all the upgrade code is here:
https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the
open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here:
https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you
locally. On the upgrade it is using the bundled in chef-client that is
used to configure the chef server, so perhaps it is a difference in
client version. You can, if you explore the upgrade code, replicate
manually what the upgrade code is doing using your local chef-client
and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that
works? I think I’ve seen this error crop up for others but I’m not
sure what causes it. Also what versions are your Chef 11 server and
Chef 12 server package?

Thanks,

Mark

Mark Mzyk mailto:mmzyk@chef.io
March 5, 2015 at 11:25 AM
Hi Michael,

You’re correct that it’s using knife download. To give you more
insight into the process, all the upgrade code is here:
https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the
open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here:
https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you
locally. On the upgrade it is using the bundled in chef-client that is
used to configure the chef server, so perhaps it is a difference in
client version. You can, if you explore the upgrade code, replicate
manually what the upgrade code is doing using your local chef-client
and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that
works? I think I’ve seen this error crop up for others but I’m not
sure what causes it. Also what versions are your Chef 11 server and
Chef 12 server package?

Thanks,

Mark

Michael Hart mailto:michael.hart@arcticwolf.com
March 4, 2015 at 12:46 PM
We are trying to upgrade to Chef Server 12 (from 11.1.1), and ran into
this error when running the "chef-server-ctl chef12-upgrade-download”
command (which I think is just doing “knife download /“):

ERROR: Chef::ChefFS::FileSystem::NotFoundError:
Chef::ChefFS::FileSystem::NotFoundError
knife download failed with pid 9244 exit 100

It was in the middle of downloading a few versions of a cookbook,
which I can download successfully using knife cookbook download.

From what we can tell there’s no errors in the chef server log at all.

Any suggestions/ideas?

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773


#5

The download failed with an EOF error shortly after I sent the email.

We did a huge ‘spring’ cleaning of all the roles/cookbooks before this last run, we had a lot of cruft that needed cleansing.

What’s odd is that the "chef-server-ctl chef12-upgrade-download” command is just running a “knife download /“ behind the scenes, and that process used 100% of one CPU for the full 7 hours. It appeared to slow down over time, and I noticed that it opens/closes a new https session for every file it downloads.

In comparison, for backups we’re using the knife backup plugin (I think from https://github.com/mdxp/knife-backup) and it can export the entire server in about 1.5 hours. We run a full backup every night and a —latest every few hours. We’re still trying to figure out what the difference is and why one works and the other fails. And if there’s a difference in the data that they provide.

Thanks
Mike


Michael Hart
Arctic Wolf Networks
226.388.4773

From: Mark Mzyk
Reply-To: "chef@lists.opscode.commailto:chef@lists.opscode.com"
Date: Friday, March 6, 2015 at 08:58
To: "chef@lists.opscode.commailto:chef@lists.opscode.com"
Subject: [chef] Re: Re: Re: Chef Server 12 upgrade failure

Having it on the same node is fine; that’s the default case the upgrade process was designed for. Hopefully it all goes well this time. If it does not, let us know and we’ll help you get it sorted. The upgrade is taking as long as it is because the process is download all the data/transform it to Chef 12 format/upload all the data to a new server. The more data you have the longer it’ll take (having many cookbook versions is a particular culprit here). It was done this way so that all your data moved through the API so we could ensure it would be in a good format on the Chef 12 server. We recognized that this might take a while, which is why the chef12-upgrade-* commands exist to give you finer control over the process.

  • Mark

[cid:part1.04040905.09050800@chef.io]
Michael Hartmailto:michael.hart@arcticwolf.com
March 5, 2015 at 3:35 PM
Hi Mark,

Thanks for the response. We have chef server 11 and 12 installed on the same node, which is arguably not the best approach but so be it.

So versions:
Chef Server 11.1.1-1
Chef Server 12.0.5-1
Chef Client 11.16.4-1

We trimmed down the amount of data in chef significantly and am running another export again. I dare not say that it’s going well for fear of jinxing it, except that it’s been running for > 6 hours.

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773

From: Mark Mzyk
Reply-To: "chef@lists.opscode.commailto:chef@lists.opscode.com"
Date: Thursday, March 5, 2015 at 11:25
To: "chef@lists.opscode.commailto:chef@lists.opscode.com"
Subject: [chef] Re: Chef Server 12 upgrade failure

Hi Michael,

You’re correct that it’s using knife download. To give you more insight into the process, all the upgrade code is here: https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here: https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you locally. On the upgrade it is using the bundled in chef-client that is used to configure the chef server, so perhaps it is a difference in client version. You can, if you explore the upgrade code, replicate manually what the upgrade code is doing using your local chef-client and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that works? I think I’ve seen this error crop up for others but I’m not sure what causes it. Also what versions are your Chef 11 server and Chef 12 server package?

Thanks,

Mark

[cid:part1.04040905.09050800@chef.io]
Mark Mzykmailto:mmzyk@chef.io
March 5, 2015 at 11:25 AM
Hi Michael,

You’re correct that it’s using knife download. To give you more insight into the process, all the upgrade code is here: https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here: https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you locally. On the upgrade it is using the bundled in chef-client that is used to configure the chef server, so perhaps it is a difference in client version. You can, if you explore the upgrade code, replicate manually what the upgrade code is doing using your local chef-client and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that works? I think I’ve seen this error crop up for others but I’m not sure what causes it. Also what versions are your Chef 11 server and Chef 12 server package?

Thanks,

Mark

[cid:part1.04040905.09050800@chef.io]
Michael Hartmailto:michael.hart@arcticwolf.com
March 4, 2015 at 12:46 PM
We are trying to upgrade to Chef Server 12 (from 11.1.1), and ran into this error when running the "chef-server-ctl chef12-upgrade-download” command (which I think is just doing “knife download /“):

ERROR: Chef::ChefFS::FileSystem::NotFoundError: Chef::ChefFS::FileSystem::NotFoundError
knife download failed with pid 9244 exit 100

It was in the middle of downloading a few versions of a cookbook, which I can download successfully using knife cookbook download.

From what we can tell there’s no errors in the chef server log at all.

Any suggestions/ideas?

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773


#6

I’m not sure why the chef12-upgrade-download command would be taking so
much cpu. It is, as you say, running a knife download as a first step.
After that step it then accesses the db to grab some final data that it
doesn’t get through knife download.

You can try to run this process with your own local knife. You just need
to replicate what the code is doing, specifically in this method:

Note that you can inspect all the data it already downloaded. It’s on
disk in /tmp/chef11- unless you used the command line
option to save it somewhere else. It’s all in json and text files, so
it’s easy to see what is there.

As far as replicating what chef12-upgrade-download is doing, you’ll want
to make sure your config is set properly, like so:

Then run knife download:

The hardest part is that you’ll need to make the key_dump.json file that
will live with your chef11 data at the top level dir. That is created in
the upgrade process here:

but is populated later on here:

Once you have the data downloaded and the key_dump.json in place, you’ve
done all the steps that the chef12-upgrade-download command would do.
You can then pick up with the chef12-upgrade-data-transform command and
point it at your data location.

It’s hard for me to offer any more advice than this without seeing stack
traces and having more info. If you continue to have issues it’s
probably best to open an issue against the chef-server repo.

Hope this helps.

  • Mark

Michael Hart mailto:michael.hart@arcticwolf.com
March 6, 2015 at 2:54 PM
The download failed with an EOF error shortly after I sent the email.

We did a huge ‘spring’ cleaning of all the roles/cookbooks before this
last run, we had a lot of cruft that needed cleansing.

What’s odd is that the "chef-server-ctl chef12-upgrade-download”
command is just running a “knife download /“ behind the scenes, and
that process used 100% of one CPU for the full 7 hours. It appeared to
slow down over time, and I noticed that it opens/closes a new https
session for every file it downloads.

In comparison, for backups we’re using the knife backup plugin (I
think from https://github.com/mdxp/knife-backup) and it can export the
entire server in about 1.5 hours. We run a full backup every night and
a —latest every few hours. We’re still trying to figure out what the
difference is and why one works and the other fails. And if there’s a
difference in the data that they provide.

Thanks
Mike


Michael Hart
Arctic Wolf Networks
226.388.4773

From: Mark Mzyk
Reply-To: "chef@lists.opscode.com mailto:chef@lists.opscode.com"
Date: Friday, March 6, 2015 at 08:58
To: "chef@lists.opscode.com mailto:chef@lists.opscode.com"
Subject: [chef] Re: Re: Re: Chef Server 12 upgrade failure

Having it on the same node is fine; that’s the default case the
upgrade process was designed for. Hopefully it all goes well this
time. If it does not, let us know and we’ll help you get it sorted.
The upgrade is taking as long as it is because the process is download
all the data/transform it to Chef 12 format/upload all the data to a
new server. The more data you have the longer it’ll take (having many
cookbook versions is a particular culprit here). It was done this way
so that all your data moved through the API so we could ensure it
would be in a good format on the Chef 12 server. We recognized that
this might take a while, which is why the chef12-upgrade-* commands
exist to give you finer control over the process.

  • Mark

Mark Mzyk mailto:mmzyk@chef.io
March 6, 2015 at 8:58 AM
Having it on the same node is fine; that’s the default case the
upgrade process was designed for. Hopefully it all goes well this
time. If it does not, let us know and we’ll help you get it sorted.
The upgrade is taking as long as it is because the process is download
all the data/transform it to Chef 12 format/upload all the data to a
new server. The more data you have the longer it’ll take (having many
cookbook versions is a particular culprit here). It was done this way
so that all your data moved through the API so we could ensure it
would be in a good format on the Chef 12 server. We recognized that
this might take a while, which is why the chef12-upgrade-* commands
exist to give you finer control over the process.

  • Mark

Michael Hart mailto:michael.hart@arcticwolf.com
March 5, 2015 at 3:35 PM
Hi Mark,

Thanks for the response. We have chef server 11 and 12 installed on
the same node, which is arguably not the best approach but so be it.

So versions:
Chef Server 11.1.1-1
Chef Server 12.0.5-1
Chef Client 11.16.4-1

We trimmed down the amount of data in chef significantly and am
running another export again. I dare not say that it’s going well for
fear of jinxing it, except that it’s been running for > 6 hours.

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773

From: Mark Mzyk
Reply-To: "chef@lists.opscode.com mailto:chef@lists.opscode.com"
Date: Thursday, March 5, 2015 at 11:25
To: "chef@lists.opscode.com mailto:chef@lists.opscode.com"
Subject: [chef] Re: Chef Server 12 upgrade failure

Hi Michael,

You’re correct that it’s using knife download. To give you more
insight into the process, all the upgrade code is here:
https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the
open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here:
https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you
locally. On the upgrade it is using the bundled in chef-client that is
used to configure the chef server, so perhaps it is a difference in
client version. You can, if you explore the upgrade code, replicate
manually what the upgrade code is doing using your local chef-client
and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that
works? I think I’ve seen this error crop up for others but I’m not
sure what causes it. Also what versions are your Chef 11 server and
Chef 12 server package?

Thanks,

Mark

Mark Mzyk mailto:mmzyk@chef.io
March 5, 2015 at 11:25 AM
Hi Michael,

You’re correct that it’s using knife download. To give you more
insight into the process, all the upgrade code is here:
https://github.com/chef/opscode-omnibus/tree/master/files/private-chef-ctl-commands

Look at the chef12_upgrade* files and the
open_source_chef12_upgrade.rb file.

Specifically, the knife download is run here:
https://github.com/chef/opscode-omnibus/blob/master/files/private-chef-ctl-commands/open_source_chef12_upgrade.rb

I don’t know why it would fail during the upgrade but work for you
locally. On the upgrade it is using the bundled in chef-client that is
used to configure the chef server, so perhaps it is a difference in
client version. You can, if you explore the upgrade code, replicate
manually what the upgrade code is doing using your local chef-client
and then you could proceed on with the other steps.

Can you tell me what version of the chef-client you’re using that
works? I think I’ve seen this error crop up for others but I’m not
sure what causes it. Also what versions are your Chef 11 server and
Chef 12 server package?

Thanks,

Mark

Michael Hart mailto:michael.hart@arcticwolf.com
March 4, 2015 at 12:46 PM
We are trying to upgrade to Chef Server 12 (from 11.1.1), and ran into
this error when running the "chef-server-ctl chef12-upgrade-download”
command (which I think is just doing “knife download /“):

ERROR: Chef::ChefFS::FileSystem::NotFoundError:
Chef::ChefFS::FileSystem::NotFoundError
knife download failed with pid 9244 exit 100

It was in the middle of downloading a few versions of a cookbook,
which I can download successfully using knife cookbook download.

From what we can tell there’s no errors in the chef server log at all.

Any suggestions/ideas?

Thanks
mike

Michael Hart
Arctic Wolf Networks
226.388.4773


#7

Ohai Chefs!

CentOS package_resource question.

In one of my recipes I have:

package "kernel-devel-#{node[‘os_version’]}”

This fails with: ERROR: Converge failed with error message yum_package[kernel-devel-2.6.32-504.el6.x86_64] (chs_sep::install_sep line 22) had an error:
Chef::Exceptions::package: No candidate version available for kernel-devel-2.6.32-504.el6.x86_64

However, yum info kernel-devel-2.6.32-504.el6.x86_64 shows it to be a valid package (and is already installed):

yum info kernel-devel-2.6.32-504.el6.x86_64

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirror.dattobackup.com
  • extras: mirrors.gigenet.com
  • updates: mirror.team-cymru.org
    Installed Packages
    Name : kernel-devel
    Arch : x86_64
    Version : 2.6.32
    Release : 504.el6
    Size : 25 M
    Repo : installed
    From repo : base
    Summary : Development package for building kernel modules to match the kernel
    URL : http://www.kernel.org/
    License : GPLv2
    Description : This package provides kernel headers and makefiles sufficient to build modules
    : against the kernel package.

So what gives??


#8

By the way,

This works:

package “kernel-devel” do
version "2.6.32-504.el6"
arch "x86_64"
end

But it is not ideal (for CentOS, anyway). There’s nowhere via ohai to get the version sans architecture. I have to play games with the string: "2.6.32-504.el6.x86_64” in order to separate the two, create variables from them and feed them into the package resource.

Something along the lines of:
ver = "2.6.32-504.el6.x86_64” # coming from “${node[‘os_version’]}"
arch = "”x86_64” # coming from “${node[‘arch’]}
ver = ver[0…ver.rindex(arch) - 2]

(Ruby people, does anyone have a better substringing function for this?)
__________________________ (╯°□°)╯︵ ┻━┻
Ivan Suftin - Applications Developer - isuftin@usgs.gov
Office: (608) 821-3825 - Cell : (608) 345-8963
Center for Integrated Data Analytics - http://cida.usgs.gov/
United States Geological Survey
8505 Research Way, Middleton, WI 53562

On Mar 15, 2015, at 9:22 PM, Ivan Suftin isuftin@usgs.gov wrote:

Ohai Chefs!

CentOS package_resource question.

In one of my recipes I have:

package "kernel-devel-#{node[‘os_version’]}”

This fails with: ERROR: Converge failed with error message yum_package[kernel-devel-2.6.32-504.el6.x86_64] (chs_sep::install_sep line 22) had an error:
Chef::Exceptions::package: No candidate version available for kernel-devel-2.6.32-504.el6.x86_64

However, yum info kernel-devel-2.6.32-504.el6.x86_64 shows it to be a valid package (and is already installed):

yum info kernel-devel-2.6.32-504.el6.x86_64

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirror.dattobackup.com
  • extras: mirrors.gigenet.com
  • updates: mirror.team-cymru.org
    Installed Packages
    Name : kernel-devel
    Arch : x86_64
    Version : 2.6.32
    Release : 504.el6
    Size : 25 M
    Repo : installed
    From repo : base
    Summary : Development package for building kernel modules to match the kernel
    URL : http://www.kernel.org/
    License : GPLv2
    Description : This package provides kernel headers and makefiles sufficient to build modules
    : against the kernel package.

So what gives??


#9

You can use the following to remove the arch from the string:

ver = ‘2.6.32-504.el6.x86_64’
=> “2.6.32-504.el6.x86_64"
ver.sub(”.#{node[‘arch’]}", ‘’)
=> “2.6.32-504.el6”

On Mon, Mar 16, 2015 at 6:30 AM, Ivan Suftin isuftin@usgs.gov wrote:

By the way,

This works:

package “kernel-devel” do
version "2.6.32-504.el6"
arch "x86_64"
end

But it is not ideal (for CentOS, anyway). There’s nowhere via ohai to get
the version sans architecture. I have to play games with the string:
"2.6.32-504.el6.x86_64” in order to separate the two, create variables from
them and feed them into the package resource.

Something along the lines of:
ver = "2.6.32-504.el6.x86_64” # coming from “${node[‘os_version’]}"
arch = "”x86_64” # coming from “${node[‘arch’]}
ver = ver[0…ver.rindex(arch) - 2]

(Ruby people, does anyone have a better substringing function for this?)
__________________________ (╯°□°)╯︵ ┻━┻
Ivan Suftin - Applications Developer - isuftin@usgs.gov
Office: (608) 821-3825 - Cell : (608) 345-8963
Center for Integrated Data Analytics - http://cida.usgs.gov/
United States Geological Survey
8505 Research Way, Middleton, WI 53562

On Mar 15, 2015, at 9:22 PM, Ivan Suftin isuftin@usgs.gov wrote:

Ohai Chefs!

CentOS package_resource question.

In one of my recipes I have:

package "kernel-devel-#{node[‘os_version’]}”

This fails with: ERROR: Converge failed with error message
yum_package[kernel-devel-2.6.32-504.el6.x86_64] (chs_sep::install_sep line

  1. had an error:
               Chef::Exceptions::Package: No candidate version

available for kernel-devel-2.6.32-504.el6.x86_64

However, yum info kernel-devel-2.6.32-504.el6.x86_64 shows it to be a
valid package (and is already installed):

yum info kernel-devel-2.6.32-504.el6.x86_64

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirror.dattobackup.com
  • extras: mirrors.gigenet.com
  • updates: mirror.team-cymru.org
    Installed Packages
    Name : kernel-devel
    Arch : x86_64
    Version : 2.6.32
    Release : 504.el6
    Size : 25 M
    Repo : installed
    From repo : base
    Summary : Development package for building kernel modules to match
    the kernel
    URL : http://www.kernel.org/
    License : GPLv2
    Description : This package provides kernel headers and makefiles
    sufficient to build modules
    : against the kernel package.

So what gives??


#10

Thanks, Brandon. That works :wink:
__________________________ (╯°□°)╯︵ ┻━┻
Ivan Suftin - Applications Developer - isuftin@usgs.gov
Office: (608) 821-3825 - Cell : (608) 345-8963
Center for Integrated Data Analytics - http://cida.usgs.gov/
United States Geological Survey
8505 Research Way, Middleton, WI 53562

On Mar 16, 2015, at 11:24 AM, Brandon Raabe brandocorp@gmail.com wrote:

You can use the following to remove the arch from the string:

ver = ‘2.6.32-504.el6.x86_64’
=> “2.6.32-504.el6.x86_64"
ver.sub(”.#{node[‘arch’]}", ‘’)
=> “2.6.32-504.el6”

On Mon, Mar 16, 2015 at 6:30 AM, Ivan Suftin <isuftin@usgs.gov mailto:isuftin@usgs.gov> wrote:
By the way,

This works:

package “kernel-devel” do
version "2.6.32-504.el6"
arch "x86_64"
end

But it is not ideal (for CentOS, anyway). There’s nowhere via ohai to get the version sans architecture. I have to play games with the string: "2.6.32-504.el6.x86_64” in order to separate the two, create variables from them and feed them into the package resource.

Something along the lines of:
ver = "2.6.32-504.el6.x86_64” # coming from “${node[‘os_version’]}"
arch = "”x86_64” # coming from “${node[‘arch’]}
ver = ver[0…ver.rindex(arch) - 2]

(Ruby people, does anyone have a better substringing function for this?)
__________________________ (╯°□°)╯︵ ┻━┻
Ivan Suftin - Applications Developer - isuftin@usgs.gov mailto:isuftin@usgs.gov
Office: (608) 821-3825 tel:(608)%20821-3825 - Cell : (608) 345-8963 tel:(608)%20345-8963
Center for Integrated Data Analytics - http://cida.usgs.gov/ http://cida.usgs.gov/
United States Geological Survey
8505 Research Way, Middleton, WI 53562

On Mar 15, 2015, at 9:22 PM, Ivan Suftin <isuftin@usgs.gov mailto:isuftin@usgs.gov> wrote:

Ohai Chefs!

CentOS package_resource question.

In one of my recipes I have:

package "kernel-devel-#{node[‘os_version’]}”

This fails with: ERROR: Converge failed with error message yum_package[kernel-devel-2.6.32-504.el6.x86_64] (chs_sep::install_sep line 22) had an error:
Chef::Exceptions::package: No candidate version available for kernel-devel-2.6.32-504.el6.x86_64

However, yum info kernel-devel-2.6.32-504.el6.x86_64 shows it to be a valid package (and is already installed):

yum info kernel-devel-2.6.32-504.el6.x86_64

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

So what gives??