Hi Gavin,

Can you suggest any URL where I could read about ::params classes (and 
examples of course ;-) ) ?

On Tuesday, 9 April 2013 10:47:40 UTC+1, Gavin Williams wrote:
>
> Hi there, 
>
> I think you're quickest win for making the code cleaner and easier would 
> be to create a ::params class, which sets the correct values for package, 
> file and service based on your distro. 
>
> Can then inherit this class on your ::install, ::config and ::service 
> classes. 
>
> I'm sure other people will chime in with some other ideas aswell :) 
>
> HTH
>
> Gav
>
> On Tuesday, 9 April 2013 10:36:51 UTC+1, ForumUser wrote:
>>
>> Hello all,
>>
>> I am trying to write a syslog module for our small puppet installation.
>> Since I'd like to learn how to write puppet classes/modules I would avoid
>> modules from puppet labs forge (at least for now).
>>
>> This module is going to be deployed on RH 5 _and_ 6.
>> In our infrastructure each RH line (5 or 6) is configured differently:
>> RH 5 uses sysklogd, RH 6 uses rsyslog.
>>
>> I have written a class but as you can see it has a lot of redundant code.
>> Can I use any puppet syntax to make it more elegant (and easier to 
>> maintain :-) ) ?
>> Can you suggest anything ?
>>
>> class syslog::install {
>>         case $lsbmajdistrelease {
>>                 '5':    {
>>                                 package { "sysklogd":
>>                                         ensure => present,
>>                                 }
>>                         }
>>
>>                 '6':    {
>>                                 package { "rsyslog":
>>                                         ensure => present,
>>                                 }
>>                         }
>>         }
>> }
>>
>> class syslog::config {
>>         case $lsbmajdistrelease {
>>                 '5':    {
>>                                 file    { "/etc/syslog.conf":
>>                                         ensure => present,
>>                                         owner => 'root',
>>                                         group => 'root',
>>                                         mode => 0644,
>>                                         source => 
>> "puppet:///modules/syslog/syslog.conf",
>>                                         require => 
>> Class["syslog::install"],
>>                                         notify => 
>> Class["syslog::service"],
>>                                 }
>>                         }
>>
>>                 '6':    {
>>                                 file    { "/etc/rsyslog.conf":
>>                                         ensure => present,
>>                                         owner => 'root',
>>                                         group => 'root',
>>                                         mode => 0644,
>>                                         source => 
>> "puppet:///modules/syslog/rsyslog.conf",
>>                                         require => 
>> Class["syslog::install"],
>>                                         notify => 
>> Class["syslog::service"],
>>                                 }
>>                         }
>>         }
>> }
>>
>> class syslog::service {
>>         case $lsbmajdistrelease {
>>                 '5':    {
>>                                 service { "syslog":
>>                                         ensure => runing,
>>                                         enable => true,
>>                                         require => 
>> Class["syslog::config"],
>>                                 }
>>                         }
>>
>>                 '6':    {
>>                                 service { "rsyslog":
>>                                         ensure => runing,
>>                                         enable => true,
>>                                         require => 
>> Class["syslog::config"],
>>                                 }
>>                         }
>>         }
>> }
>>
>>
>> class syslog {
>>         include syslog::install, syslog::config, syslog::service
>> }
>>
>>
>> Thanks in advance :-)
>> Przemek
>>
>>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to