Hi John,
Thank you for answer.
> For debugging your manifests, you could try using
>
> unless => "/bin/true"
>
> or
>
> unless => "/bin/false"
>
> to take that test script out of the picture.
Script, in "command" work fine.
> Speaking of the test script, are you sure your nodes are getting and
> using the correct version?
It's use one version, without differents of number:
[shaggy...@puppet ~]$ rpm -qa | grep puppet
puppet-server-0.24.8-1.el5.1
puppet-0.24.8-1.el5.1
[shaggy...@puppet ~]$
[r...@vz-test conf]# rpm -qa | grep puppet
puppet-0.24.8-1.el5.1
[r...@vz-test conf]#
> As far as I know, Exec executes its command(s) directly, not via a
> shell, so I would be surprised if that did what you expect,
> independent of the "unless". That is, "if" is a keyword in the sh
> language, not an executable program (not on any system I'm familiar
> with, anyway), so I would expect that Exec to fail every time it runs.
OK, i think you true. Do you have means, how use bash script inside
"onlyif"/"unless"?
I try use script in command line:
[r...@vz-test conf]# test "/usr/sbin/rc.test-parametrs-changed.sh
check_settings 301 10.0.5.31 yes vps256M 10.0.5.52"
[r...@vz-test conf]# echo $?
0
[r...@vz-test conf]# /usr/sbin/rc.test-parametrs-changed.sh
check_settings 301 10.0.5.31 yes vps256M 10.0.5.52
[r...@vz-test conf]# echo $?
1
[r...@vz-test conf]#
but, bash exec(system command) return 0:
[r...@vz-test conf]# bash /usr/sbin/rc.test-parametrs-changed.sh
check_settings 301 10.0.5.31 yes vps756M 10.0.5.52
[r...@vz-test conf]# echo $?
0
[r...@vz-test conf]#
but "unless" inside puppet exec run exec:
exec { "vecfg-applyset_${name}":
command => "if [[ ( -d /vz/private/${veid} ) && ( -f /etc/
sysconfig/vz-scripts/${veid}.conf) && \
( $(/usr/sbin/rc.test-parametrs-changed.sh check_settings ${veid}
${veip} ${vetarif} ${vedns} ; echo $?) -eq 1)]] ; \
then vzctl set ${veid} --hostname ${vehostname} --ipadd ${veip}
--nameserver ${vedns} --save; \
vzctl set ${veid} --applyconfig ${vetarif} --save; fi",
path => ["/usr/bin", "/usr/sbin"],
unless => "bash /usr/sbin/rc.test-parametrs-changed.sh
check_settings ${veid} ${veip} ${vetarif} ${vedns}",
}
If/else inside "command" works, as i test (i use if/else inside
command, becouse unless/onlyif does'nt work for me):
[r...@vz-test conf]# cat ~/tmp_2 | grep -v _off
Dec 15 13:41:05 vz-test puppetd[23387]: Starting catalog run
Dec 15 13:41:06 vz-test puppetd[23387]: (//Node[vz-test.local]/
Mod_class_ovzconfigs::Mod_def_veadm[customer2.vps.local]/Exec[vecfg-
applyset_customer2.vps.local]/returns) executed successfully
Dec 15 13:41:16 vz-test puppetd[23387]: (//Node[vz-test.local]/
Mod_class_ovzconfigs::Mod_def_ovzbackup[ovzserver_backup]/Cron
[incremental_backup]/weekday) defined 'weekday' as '*'
Dec 15 13:43:07 vz-test puppetd[23387]: (//Node[vz-test.local]/
Mod_class_ovzconfigs::Mod_def_veadm[customer1.vps.local]/Exec[vecfg-
applyset_customer1.vps.local]/returns) executed successfully
Dec 15 13:43:14 vz-test puppetd[23387]: (//Node[vz-test.local]/
Mod_class_ovzconfigs::Mod_def_veadm[customer4.vps.local]/Exec[vecfg-
applyset_customer4.vps.local]/returns) executed successfully
Dec 15 13:43:29 vz-test puppetd[23387]: Finished catalog run in 143.67
seconds
> You can have the puppetmaster distribute
> it, but you may need to set up a require for it to make sure its
> downloaded first. (It's not clear from the docs whether Puppet will
> autorequire it from the "unless" parameter.) You'll also want to make
> sure its ownership and permissions are set appropriately.
>
> John
--
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.