Когда я выполняю puppet apply, я получаю ошибку:
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
Однако я хочу выполнить file resource перед define resource
Кто-нибудь может мне помочь?
class mod::princ ( file { '/tmp/file.yaml': ensure => file, owner => 'root', group => 'root', mode => '0644', source => "puppet:///modules/othermod/file.yaml", before => Mod::Cl["title"], }-> Mod::Cl{ "title" : tmp_file => "/tmp/file.yaml", } } define mod::cl ( String $tmp_file, ){ $tmp = loadyaml("$tmp_file") $tmp[var].each |Integer $i, Hash[String,String] $var| { $mark=$var['Mark'] } }
Исходя из моего опыта работы с кукольными функциями, такими как «до»/«требовать» и последовательность (->), они не очень хорошо работают вместе. Попробуйте удалить последовательность, возможно, файл не создается...