Mark Christian
2009-Sep-11  17:48 UTC
[Puppet Users] snmpd v3 class help - need to stop service before copying file and then restart
The problem I have is that I need to ensure that snmpd is stopped
before attempting to copy /var/net-snmp/snmpd.conf (snmpd credentials
file that gets corrupted if copied while snmpd is running).  Any
suggestions on how best to proceed?
# what I have so far.
class snmpd {
    package { net-snmp: ensure => installed }
    file { "/etc/snmp/snmpd.conf":
        owner   => root,
        group   => root,
        mode    => 0644,
        source  => "puppet:///snmpd/snmp.conf",
        require => Package[net-snmp],
        notify  => Service[snmpd],
    }
    file { "/var/net-snmp/snmpd.conf":
        owner   => root,
        group   => root,
        mode    => 0600,
        source  => "puppet:///snmpd/net-snmpd.conf",
        require => Package[net-snmp],
        notify  => Service[snmpd],
    }
    service { snmpd:
        enable  => true,
        hasrestart => true,
        ensure  => running,
        require => Package[$autofs_packages],
    }
Thank you.
Mark
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
Silviu Paragina
2009-Sep-14  22:00 UTC
[Puppet Users] Re: snmpd v3 class help - need to stop service before copying file and then restart
An odd workaround
Use a secondary file and an exec. Afaik if an exec isn''t executed, the 
resources which depend on the exec aren''t applied.
So...
class snmpd {
    package { net-snmp: ensure => installed }
    file { "/etc/snmp/snmpd.bogous.conf":
    owner   => root,
        group   => root,
        mode    => 0644,
        source  => "puppet:///snmpd/snmp.conf",
        require => Package[net-snmp],
    }
   
    exec { "stop-snmpd":
    refreshonly => true,
    command        => "invoke-rc.d snmpd stop", #or change to 
/etc/init.d/snmpd stop or whatever
    require        => File["etc/snmp/snmpd.bogous.conf"],
    subscribe   => File["etc/snmp/snmpd.bogous.conf"],
    }
    file { "/etc/snmp/snmpd.conf":
        owner   => root,
        group   => root,
        mode    => 0644,
        source  => "puppet:///snmpd/snmp.conf",
        require => [Package[net-snmp],Exec["stop-snmpd"]],
        notify  => Service[snmpd],
    }
    file { "/var/net-snmp/snmpd.conf":
        owner   => root,
        group   => root,
        mode    => 0600,
        source  => "puppet:///snmpd/net-snmpd.conf",
        require =>
[Package[net-snmp],File["/etc/snmp/snmpd.conf"]],
        notify  => Service[snmpd],
    }
    service { snmpd:
        enable  => true,
        hasrestart => true,
        ensure  => running,
        require => Package[$autofs_packages],
    }
try this with a puppet --test and see what happens
I know this is an ugly workaround :">
Silviu
Mark Christian wrote:> The problem I have is that I need to ensure that snmpd is stopped
> before attempting to copy /var/net-snmp/snmpd.conf (snmpd credentials
> file that gets corrupted if copied while snmpd is running).  Any
> suggestions on how best to proceed?
>
>
> # what I have so far.
> class snmpd {
>
>     package { net-snmp: ensure => installed }
>
>     file { "/etc/snmp/snmpd.conf":
>         owner   => root,
>         group   => root,
>         mode    => 0644,
>         source  => "puppet:///snmpd/snmp.conf",
>         require => Package[net-snmp],
>         notify  => Service[snmpd],
>     }
>
>     file { "/var/net-snmp/snmpd.conf":
>         owner   => root,
>         group   => root,
>         mode    => 0600,
>         source  => "puppet:///snmpd/net-snmpd.conf",
>         require => Package[net-snmp],
>         notify  => Service[snmpd],
>     }
>
>     service { snmpd:
>         enable  => true,
>         hasrestart => true,
>         ensure  => running,
>         require => Package[$autofs_packages],
>     }
>
> Thank you.
>
> Mark
> >
>   
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---