傀儡资源依赖

傀儡资源依赖

当我执行木偶应用时,出现错误:

Warning: Scope(Mod::Cl[title]): Can't load '/tmp/file.yaml' File does not exist!
Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Operator '[]' is not applicable to an Undef Value.

我指定 loadyaml 是 stdlib 模块的函数

但是,我想在定义资源之前执行文件资源

有人可以帮助我吗?

类 mod::princ (

    文件 { '/tmp/file.yaml':
        确保=>文件,
        所有者 => '根',
        组 => '根',
        模式=>“0644”,
        源=>“puppet:///modules/othermod/file.yaml”,
        之前 => Mod::Cl["标题"],
    }->
    Mod::Cl{ “标题” :
        tmp_file =>“/tmp/file.yaml”,
    }

}

定义 mod::cl (
    字符串 $tmp_file,
){

    $tmp = loadyaml("$tmp_file")

    $tmp[var].each |整数 $i,哈希[字符串,字符串] $var|
    {
      $mark=$var['标记']
    }

}

答案1

根据我对木偶的经验,“之前”/“需要”和排序(->)之类的东西不能很好地协同工作。尝试删除排序,因为可能没有创建文件......

答案2

正如傀儡函数调用中所指定的参考页,函数在编译时调用,因此无论顺序如何,函数都会在模块执行之前调用。

相关内容