chakkerz wrote:
> Hello there
>
> I'm having a problem (again). At my site we are maintaining RHEL,
> CentOS and Solaris hosts, with in the future possibly some FreeBSD
> also being added into the mix. To this end instead of constantly
> branching whenever running a command on the console (or remembering
> where it is located), I've set all the commands we need so far up in
> the default node:
>
> class defaultnode
> {
> if ($httpd_group == "")
> {
> $httpd_group = "root"
> }
>
> case $operatingsystem
> {
> centos, redhat:
> {
> $cat_cmd = "/bin/cat"
> $chkconfig_cmd = "/sbin/chkconfig"
> $chown_cmd = "/bin/chown"
> $chmod_cmd = "/bin/chmod"
> $echo_cmd = "/bin/echo"
> $grep_cmd = "/bin/grep"
> $ln_cmd = "/bin/ln"
> $ls_cmd = "/bin/ls"
> $mailx_cmd = "/bin/mailx"
> $newaliases_cmd = "/usr/bin/newaliases"
> $rm_cmd = "/bin/rm"
> $sed_cmd = "/bin/sed"
> $tar_cmd = "/bin/tar"
> $touch_cmd = "/bin/touch"
> $wget_cmd = "/usr/bin/wget"
>
> include redhat-default
> }
> solaris:
> {
> $cat_cmd = "/usr/bin/cat"
> $chown_cmd = "/usr/bin/chown"
> $chmod_cmd = "/usr/bin/chmod"
> $echo_cmd = "/usr/bin/echo"
> $grep_cmd = "/usr/bin/grep"
> $mailx_cmd = "/usr/bin/mailx"
> $newaliases_cmd = "/usr/sbin/newaliases"
> $rm_cmd = "/usr/bin/rm"
> $tar_cmd = "/usr/sfw/bin/gtar"
>
> include solaris-default
> }
> default:
> {
> include shared-default
> }
> }
> }
>
> which is called by all nodes, eg:
>
> node "testnode.example.org"
> {
> include defaultnode
>
> exec
> { "$chkconfig_cmd snmpd on && $touch_cmd /tmp/
> snmpd_chkconfig.USG":
> cwd => "/",
> creates => "/tmp/snmpd_chkconfig.USG",
> }
>
> }
>
> But when i run puppet the variables aren't defined:
> err: Could not create snmpd on && /tmp/snmpd_chkconfig.USG: ' snmpd
> on && /tmp/snmpd_chkconfig.USG' is both unqualifed and specified no
> search path at /etc/puppet/manifests/nodes/testnode.node:9
> warning: Not using cache on failed catalog
> warning: Configuration could not be instantiated: ' snmpd on && /tmp/
> snmpd_chkconfig.USG' is both unqualifed and specified no search path
> at /etc/puppet/manifests/nodes/testnode.node:9
Variables don't escape their scope. Use the search() function to add
"defaultnode" to the serachpath or reference the variables directly with
$defaultnode::chkconfig_cmd or "${defaultnode::chkconfig_cmd}". See the
LanguageTutorial on the wiki for details (section "Variables"[1]).
Regards, DavidS
[1] http://reductivelabs.com/trac/puppet/wiki/LanguageTutorial#variables
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---