在puppet中的类之间传递变量

在puppet中的类之间传递变量,puppet,Puppet,我正在尝试使用exec资源类型执行批处理文件。但是我想将变量$dsn_64bit的值从init.pp传递到install.pp。请让我知道如何做到这一点: 这是我的init.pp class exec_batchfile ($dsn_64bit = "false") { if $::osfamily == 'windows' { include exec_batchfile::install } } 这是我的install.pp class exec_batchfile::insta

我正在尝试使用exec资源类型执行批处理文件。但是我想将变量$dsn_64bit的值从init.pp传递到install.pp。请让我知道如何做到这一点:

这是我的init.pp

class exec_batchfile ($dsn_64bit = "false")
{
if $::osfamily == 'windows' {
include exec_batchfile::install
   }
  }
这是我的install.pp

class exec_batchfile::install 
 {
 if $dsn_64bit == true
{
  $hklm_path = 'HKLM\Software\Oracle'
  $Script_name = 'E:\\Path\\pupp_test64.bat'
}
else
{
   $hklm_path = 'HKLM\Software\WOW6432Node\Oracle'
  $Script_name = 'E:\\Path\\pupp_test.bat'
 }
    exec { 'exec_batchfile':
       command => "${Script_name}",
       path => $::path,
       logoutput => true,
       unless => "cmd.exe /c reg query ${hklm_path} /v inst_loc",
  }
 }

谢谢,因为puppet 2.7动态查找已被弃用,所以您的代码无法正常工作。现在推荐的解决方案是使用完全限定名。请按照下面的说明查找全面的说明

每当需要引用另一个类中的变量时,请为该变量指定一个显式名称空间:使用$git::core::packagelist而不是简单地引用$packagelist


$local_var=“from parent::child”成功了+1用于链接。谢谢你,我改变了我的答案,使之更符合你的评论。