Re,

On 2014-07-21 09:35, dhaval thakar -SkillnetED wrote:
-------- Original Message --------
Subject: Re: [Puppet Users] Apply patch once to windows node
From: David Schmitt <[email protected]>
To: [email protected]
Date: 07/21/2014 11:39 AM
On 2014-07-15 15:36, Dhaval Thakar wrote:
Hi All,

I am starting to use puppet to manage windows nodes, tried searching but
couldn't find solution for this...

I need to apply kaspersky patch using puppet to windows nodes. So far I
have used kaspersky server to install / upgrade / patch antivirus.
Trying to get it done using puppet.

Can someone guide me to run windows command on nodes only once ? This
patch does not update installed application version hence couldn't use
Package in manifest file.

Trying to understand your use-case here: What is the problem of using
the kaspersky server to deploy the AV patches?

To answer you primary question: If you find a way to programmatically
check whether the patch is applied or not, and you know how to install
the patch by code, you can implement a exec resource with an onlyif
argument to do so. It'll probably be a pain to maintain and will not
scale as patches accumulate.


Regards, David

Hi,

Thanks for the reply.
Only valid reason I have is to install patches on fresh OS, along with
AV which may not work if I push patches using kasper, kasper admin
maintains its local catalogue for app / patch deployment. Also these
patches does not change ver number for installed AV. Another reason is
to learn puppet.

For now I have created following menifest which works fine on test
setup. I am yet to use it for all users. Pl reply if you find any kind
of configuration error etc.

class av_patches {
         if ! defined(Package["Kaspersky Endpoint Security 10 for

This defined() condition should not be necessary: Have only a single location where the package is defined.

Windows"]) {
         package { "Kaspersky Endpoint Security 10 for Windows":
         ensure => installed,
         }
         }
         file { "c:/software/patch_10_1_249.exe":
                 ensure => present,
                 source =>
"puppet:///modules/av_patches/patch_10_1_249.exe",
         require => Package["Kaspersky Endpoint Security 10 for Windows"],
                 }
         file { "c:/software/patch_pfsf2.exe":
                 ensure => present,
                 source => "puppet:///modules/av_patches/patch_pfsf2.exe",
         require => Package["Kaspersky Endpoint Security 10 for Windows"],
         }
     exec { "patch_10_1_249":
         command => 'c:/software/patch_10_1_249.exe /s',
         creates => "c:/software/patch_10_1_249-installed",
         require => File["c:/software/patch_10_1_249.exe"],
         notify => File["c:/software/patch_10_1_249-installed"],
         }
     file { "c:/software/patch_10_1_249-installed":
                 ensure => file,
         require => Exec["patch_10_1_249"],
         }

         exec { "patch_pfsf2":
                 command => 'c:/software/patch_pfsf2.exe /s',
                 creates => "c:/software/patch_pfsf2-installed",
                 require => File["c:/software/patch_pfsf2.exe"],
                 notify => File["c:/software/patch_pfsf2-installed"],
                 }
         file { "c:/software/patch_pfsf2-installed":
                 ensure => file,
                 require => Exec["patch_pfsf2"],
                 }

Interesting chaining for stampfileing! I haven't seen that one before and it looks nice, given the circumstances.

The important thing to test is that calling the patch installers a second time doesn't result in an error. Else that construct might need manual intervention, when something interrupts puppet after installing the patch but before doing the -installed file.

}

All in all it looks like a pragmatic solution to an ugly problem. When you'll gain experience with new patches in your environment, you might want to look into extracting the patch versions into a variable to avoid editing it in many places, but that is already nitpicking.


Regards, David
--
* Always looking for people I can help with awesome projects *
G+: https://plus.google.com/+DavidSchmitt
Blog: http://club.black.co.at/log/
LinkedIn: http://at.linkedin.com/in/davidschmitt

--
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/53CCDFAB.3080909%40dasz.at.
For more options, visit https://groups.google.com/d/optout.

Reply via email to