Hey Folks, Let me first setup the scenario. I have a server (managed via puppet) that runs a mysql database. The problem is that I currently have the mysql package installed as an rpm via puppet, though I''m also wanting to use puppet to manage the mysql ruby gem. Unfortunately when I do this, puppet complains with the following error: ArgumentError: Duplicate definition: Package[mysql] is already defined Is there a way to get around this? Thanks, Matt Delves --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Sep 4, 1:46 am, Julian Simpson <simpsonjul...@gmail.com> wrote:> You need to tell Puppet to manage both a gem and an RPM. Adding > ''provider => gem'' to the appropriate package declaration will do that.> 2009/9/4 Matt Delves <m.del...@ballarat.edu.au>: > > The problem is that I currently have the mysql package installed as an > > rpm via puppet, though I''m also wanting to use puppet to manage the > > mysql ruby gem. Unfortunately when I do this, puppet complains with the > > following error: > > ArgumentError: Duplicate definition: Package[mysql] is already defined > > > Is there a way to get around this?Do try Julian''s suggestion first, but I suspect that it will not be sufficient. The root problem appears to be that you are using the same name for the RPM package resource and the gem package resource. I don''t think Puppet will allow two resources of the same name and type, even if they have different providers. If you do need package name uniqueness then you *might* be able to arrange it like so: # Puppet should refer to this Package resource as "mysql-gem", whereas gem should consider the gem name to be "mysql". Maybe. package { "mysql-gem": name => "mysql" # Must specify the provider when it is not the system default: provider => "gem" [...] } If that doesn''t work either then you might need custom code to get around the problem. Good luck. John --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
I think John''s probably right. My manifests are all written for Ubuntu - which has a different set of package names for mysql: mysql-server, mysql-client, etc. Best J. 2009/9/4 jcbollinger <John.Bollinger@stjude.org>:> > > On Sep 4, 1:46 am, Julian Simpson <simpsonjul...@gmail.com> wrote: >> You need to tell Puppet to manage both a gem and an RPM. Adding >> ''provider => gem'' to the appropriate package declaration will do that. > >> 2009/9/4 Matt Delves <m.del...@ballarat.edu.au>: >> > The problem is that I currently have the mysql package installed as an >> > rpm via puppet, though I''m also wanting to use puppet to manage the >> > mysql ruby gem. Unfortunately when I do this, puppet complains with the >> > following error: >> > ArgumentError: Duplicate definition: Package[mysql] is already defined >> >> > Is there a way to get around this? > > Do try Julian''s suggestion first, but I suspect that it will not be > sufficient. The root problem appears to be that you are using the > same name for the RPM package resource and the gem package resource. > I don''t think Puppet will allow two resources of the same name and > type, even if they have different providers. If you do need package > name uniqueness then you *might* be able to arrange it like so: > > # Puppet should refer to this Package resource as "mysql-gem", whereas > gem should consider the gem name to be "mysql". Maybe. > package { "mysql-gem": > name => "mysql" > # Must specify the provider when it is not the system default: > provider => "gem" > [...] > } > > If that doesn''t work either then you might need custom code to get > around the problem. > > Good luck. > > > John > > >-- Julian Simpson Software Build and Deployment http://www.build-doctor.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---