在puppet中的类之间传递变量

时间:2015-04-27 19:53:40

标签: 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::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",
  }
 }

由于

1 个答案:

答案 0 :(得分:3)

由于不推荐使用puppet 2.7动态查找,因此您的代码将无法正常运行。目前推荐的解决方案是使用完全限定名称。请按照link查找详细说明。

  

每当你需要引用另一个类中的变量时,给变量一个显式命名空间:而不是简单地引用$ packagelist,使用$ git :: core :: packagelist。