Community-mysql instead of mysql


#1

Hi all,

I am using mysql cookbooks, but my repo doesn’t have a mysql package, instead we have community-mysql package. I want to know how can I change mysql into community-mysql. One option is I will have to write a new cookbook, but then there are a lot of dependencies issue. I tried to make some changes, like putting community-mysql in place of mysql in recipes and uploaded the cookbooks, but it didn’t work. My server shows the modified cookbooks, but the synchronized (?) cookbooks on my machine are still the old version. I even deleted the cached cookbooks, but still I am getting the same result.

How is it that there are different cookbooks on server and client?

Thanks,
~Peeyush Gupta


#2

On Tue, Mar 4, 2014 at 7:52 AM, Peeyush Gupta gpeeyush@ymail.com wrote:

I am using mysql cookbooks, but my repo doesn’t have a mysql package,
instead we have community-mysql package. I want to know how can I change
mysql into community-mysql. One option is I will have to write a new
cookbook, but then there are a lot of dependencies issue. I tried to make
some changes, like putting community-mysql in place of mysql in recipes and
uploaded the cookbooks, but it didn’t work. My server shows the modified
cookbooks, but the synchronized (?) cookbooks on my machine are still the
old version. I even deleted the cached cookbooks, but still I am getting the
same result.

What platform are you on? Fedora? There’s been a lot of discussion
about how to modify Chef’s MySQL cookbook to run on Fedora now that
it’s moving to MariaDB.

https://tickets.opscode.com/browse/COOK-4259

How is it that there are different cookbooks on server and client?

The server can store multiple cookbook versions. You can read about
cookbook versioning here:
http://docs.opscode.com/essentials_cookbook_versions.html

Maybe the “version” that you’ve uploaded isn’t the highest version on
the server and the client isn’t replacing it’s version. Or maybe the
cookbook isn’t specifically listed in the run list on the node
(client) and it is getting the cookbook through a dependency in
another cookbook, which is specifying a version.

You can use “knife cookbook show mysql” to list the versions of the
mysql cookbooks on the server and then use “knife cookbook delete
COOKBOOK_NAME COOKBOOK_VERSION” to delete specific versions of a
cookbook off of the server.

http://docs.opscode.com/knife_cookbook.html

You can also run the chef-client in debug mode using “chef-client -l
debug” which will provide additional output in regard to what the
client is downloading and running.

Bryan


#3

Hi Bryan,

Thanks for the reply. Yes, I am using Fedora and the repo has mariadb and community-mysql.
Though I have one more doubt, when I run chef-client, the cookbook install community-mysql as
an mysql provider, but gives error at installing mysql-devel. My point is if the cookbook can identify
community-mysql as mysql provider, why can’t it recognize community-mysql-devel?
Any yeah, I do have multiple versions of mysql on my server, will try to resolve the issue by handling
dependencies.

Thanks,
~Peeyush Gupta

On Wednesday, 5 March 2014 3:26 AM, Bryan McLellan btm@loftninjas.org wrote:

On Tue, Mar 4, 2014 at 7:52 AM, Peeyush Gupta gpeeyush@ymail.com wrote:

I am using mysql cookbooks, but my repo doesn’t have a mysql package,
instead we have community-mysql package. I want to know how can I change
mysql into community-mysql. One option is I will have to write a new
cookbook, but then there are a lot of dependencies issue. I tried to make
some changes, like putting community-mysql in place of mysql in recipes and
uploaded the cookbooks, but it didn’t work. My server shows the modified
cookbooks, but the synchronized (?) cookbooks on my machine are still the
old version. I even deleted the cached cookbooks, but still I am getting the
same result.

What platform are you on? Fedora? There’s been a lot of discussion
about how to modify Chef’s MySQL cookbook to run on Fedora now that
it’s moving to MariaDB.

https://tickets.opscode.com/browse/COOK-4259

How is it that there are different cookbooks on server and client?

The server can store multiple cookbook versions. You can read about
cookbook versioning here:
http://docs.opscode.com/essentials_cookbook_versions.html

Maybe the “version” that you’ve uploaded isn’t the highest version on
the server and the client isn’t replacing it’s version. Or maybe the
cookbook isn’t specifically listed in the run list on the node
(client) and it is getting the cookbook through a dependency in
another cookbook, which is specifying a version.

You can use “knife cookbook show mysql” to list the versions of the
mysql cookbooks on the server and then use “knife cookbook delete
COOKBOOK_NAME COOKBOOK_VERSION” to delete specific versions of a
cookbook off of the server.

http://docs.opscode.com/knife_cookbook.html

You can also run the chef-client in debug mode using “chef-client -l
debug” which will provide additional output in regard to what the
client is downloading and running.

Bryan


#4

Most likely, it has to do with the structure of RPMs. RPMs include the official name, but also declare any number of features they provide. This is often use to provide several alternate RPMs that each fulfill a particular requirement. For instance, sendmail and postfix would both provide smtpd, MTA, /usr/sbin/sendmail, and so on.

Probably, community-mysql also provides mysql.

There probably is no equivalent provides listed in the community-mysql-devel RPM.

From: Peeyush Gupta [mailto:gpeeyush@ymail.com]
Sent: Tuesday, March 4, 2014 10:24 PM
To: chef@lists.opscode.com
Subject: [chef] Re: Re: Community-mysql instead of mysql

Hi Bryan,

Thanks for the reply. Yes, I am using Fedora and the repo has mariadb and community-mysql.

Though I have one more doubt, when I run chef-client, the cookbook install community-mysql as

an mysql provider, but gives error at installing mysql-devel. My point is if the cookbook can identify

community-mysql as mysql provider, why can’t it recognize community-mysql-devel?

Any yeah, I do have multiple versions of mysql on my server, will try to resolve the issue by handling

dependencies.

Thanks,

~Peeyush Gupta

On Wednesday, 5 March 2014 3:26 AM, Bryan McLellan <btm@loftninjas.org mailto:btm@loftninjas.org > wrote:

On Tue, Mar 4, 2014 at 7:52 AM, Peeyush Gupta <gpeeyush@ymail.com mailto:gpeeyush@ymail.com > wrote:

I am using mysql cookbooks, but my repo doesn’t have a mysql package,
instead we have community-mysql package. I want to know how can I change
mysql into community-mysql. One option is I will have to write a new
cookbook, but then there are a lot of dependencies issue. I tried to make
some changes, like putting community-mysql in place of mysql in recipes and
uploaded the cookbooks, but it didn’t work. My server shows the modified
cookbooks, but the synchronized (?) cookbooks on my machine are still the
old version. I even deleted the cached cookbooks, but still I am getting the
same result.

What platform are you on? Fedora? There’s been a lot of discussion
about how to modify Chef’s MySQL cookbook to run on Fedora now that
it’s moving to MariaDB.

https://tickets.opscode.com/browse/COOK-4259

How is it that there are different cookbooks on server and client?

The server can store multiple cookbook versions. You can read about
cookbook versioning here:
http://docs.opscode.com/essentials_cookbook_versions.html http://docs.opscode.com/essentials_cookbook_versions.html

Maybe the “version” that you’ve uploaded isn’t the highest version on
the server and the client isn’t replacing it’s version. Or maybe the
cookbook isn’t specifically listed in the run list on the node
(client) and it is getting the cookbook through a dependency in
another cookbook, which is specifying a version.

You can use “knife cookbook show mysql” to list the versions of the
mysql cookbooks on the server and then use “knife cookbook delete
COOKBOOK_NAME COOKBOOK_VERSION” to delete specific versions of a
cookbook off of the server.

http://docs.opscode.com/knife_cookbook.html http://docs.opscode.com/knife_cookbook.html

You can also run the chef-client in debug mode using “chef-client -l
debug” which will provide additional output in regard to what the
client is downloading and running.

Bryan