I can confirm Russels conclusion that it is a bug and if you don't use
"name => $operatingsystem..." is works.
In my case I need to be able to distinguish between FreeBSD and
Debian. A workaround that's working for me is to set the variables
outside the "package"-statement like this:
-------------------------------------------------------------------------------------
####################
### zabbix agent ###
####################
class zabbix-agent {
case $operatingsystem {
freebsd: { $pkg_name = 'zabbix-agent' $service_name =
'zabbix_agentd' $cfg_file = '/usr/local/etc/zabbix/
zabbix_agentd.conf' }
debian: { $pkg_name = 'zabbix-agent' $service_name =
'zabbix_agent' $cfg_file = '/etc/zabbix/zabbix_agentd.conf' }
default: { $pkg_name = 'zabbix-agent' $service_name =
'zabbix_agent' $cfg_file = '/etc/zabbix/zabbix_agentd.conf' }
}
Package[$pkg_name] -> File[$cfg_file] -> Service[$service_name]
#######################
### Install package ###
#######################
package { $pkg_name :
ensure => installed,
}
#######################
### Get config-file ###
#######################
file { $cfg_file :
ensure => file,
checksum => md5,
owner => 'root',
group => $operatingsystem ? {
freebsd => 'wheel',
debian => 'root',
default => 'wheel',
},
mode => 644,
require => Package[$pkg_name],
source => "puppet:///modules/zabbix-agent/$hostname/
zabbix_agentd.conf",
}
#####################
### Start service ###
#####################
service { $service_name :
require => Package[$pkg_name],
ensure => running,
enable => true,
}
}
----------------------------------------------------------------------------------
Thanks for all your help.
/Freddie
On Sep 13, 6:59 pm, Russell Jackson <[email protected]> wrote:
> On 09/12/2010 07:32 AM, FreddieB wrote:
>
>
>
> > I looks like Puppet is not able to figure out that MySQL 5.1 is
> > already installed. If I list the packages installed (with pkg_info) I
> > find MySQL there but it's not called "mysql51-server" but "mysql-
> > server-5.1.48". If I go back to my init.pp and change the name from
> > "mysql51-server" to just "mysql-server", it works again (i.e. it will
> > not try to install the package again). It is not possible to start
> > with just "mysql-server", because there is no package called just
> > "mysql-server".
>
> > My conclusion is that FreeBSD's inconsistent way of naming the
> > packages fools Puppet to think it's not installed. I've never written
> > a line of ruby-code so I could use some help here. Can anyone think of
> > a good workaround?
>
> > BTW - my current, and not so pretty workaround is to link mysql-
> > server.tbz to mysql51-server.tbz on my local FreeBSD-mirror-site.
>
> Yes. The package system has turned out to be a royal PITA for puppet. I
> don't have any good work-a-rounds at the moment. I think we might be
> able to do something by specifying the package name as the port origin
> (pkg_info -o) and looking up the right package out of ports/INDEX.
>
> There's been some discussion on the freebsd-ports list about improving
> the pkg_* tools and ports in general. I'm tempted to just say use APT
> and call it good. There's zero chance of that happening due to licensing.
>
> --
> Russell A Jackson <[email protected]>
> Network Analyst
> California State University, Bakersfield
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.