John, you left out too many details in how this is implemented.

The require => Class["whatever"] on the percona package, 

and the fact that the Package["mysql"] ensure => absent is INSIDE class 
'whatever'

and that it runs successfully the FIRST time, but then is trying to REMOVE 
percona. 

Please try to require => Package["whatever::mysql"]  directly on the 
Package["percona-server"] definition, this should not try to re-evaluate 
the requirement for installing percona-server-server _ONCE IT IS ALREADY 
INSTALLED_

Read: http://docs.puppetlabs.com/learning/ordering.html

On Wednesday, April 23, 2014 1:57:09 PM UTC-7, Jon Forrest wrote:
>
> I have an interesting problem (to me). I want to install Percona 
> mysql. This is easy. 
> But I also want to make sure regular MySQL isn't installed on the same 
> machine that's running Percona. 
>
> To install Percona, I have a resource like 
>
>   package { 
>     'percona-client': 
>     name => 'Percona-Server-client-55', 
>     ensure => installed, 
>   } 
>
> To make sure MySQL isn't installed I have 
>
>   package { 
>     'mysql': 
>       provider => "yum", 
>       ensure => purged, 
>   } 
>
> The problem is that Puppet tries to remove Percona, instead of MySQL. 
> This is because the Percona rpm provides the mysql feature. By this I mean 
> the output from 'yum provides mysql' contains (edited): 
>
> Percona-Server-client-55-5.5.36-rel34.2.el6.x86_64 : Percona Server - 
> Client 
> Repo        : XXX 
> Matched from: 
> Other       : mysql 
>
> Percona-Server-client-55-5.5.36-rel34.2.el6.x86_64 : Percona Server - 
> Client 
> Repo        : installed 
> Matched from: 
> Other       : Provides-match: mysql 
>
> Of course, trying to remove Percona fails because other things depend on 
> it, as they should. 
>
> The only ideas I have for removing MySQL, and not Percona, are: 
>
> 1) Use rpmrebuild to change what Percona provides 
> 2) Use something like (untested) 
>
> exec { "/usr/bin/yum -y remove mysql": 
>   onlyif => "/bin/rpm -qa |/bin/fgrep mysql" 
>
> 3) Just presume that MySQL won't be installed in the first place. 
> I could do this but I'd like my modules to be more accepting and 
> not require a specially prepared system. 
>
> Any suggestions? 
>
> Jon Forrest 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/9104350f-64bc-4985-945c-275029b21816%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to