我正在尝试使用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",
}
}
由于
答案 0 :(得分:3)
由于不推荐使用puppet 2.7动态查找,因此您的代码将无法正常运行。目前推荐的解决方案是使用完全限定名称。请按照link查找详细说明。
每当你需要引用另一个类中的变量时,给变量一个显式命名空间:而不是简单地引用$ packagelist,使用$ git :: core :: packagelist。