зависимость от ресурсов марионетки

зависимость от ресурсов марионетки

При выполнении 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

Однако я хочу выполнить файл resource перед определением ресурса

Кто-нибудь может мне помочь?

класс mod::princ (

    файл { '/tmp/file.yaml':
        обеспечить => файл,
        владелец => 'root',
        группа => 'корень',
        режим => '0644',
        источник => "puppet:///modules/othermod/file.yaml",
        до => Mod::Cl["title"],
    }->
    Mod::Cl{ "заголовок":
        tmp_file => "/tmp/file.yaml",
    }

}

определить mod::cl (
    Строка $tmp_file,
){

    $tmp = loadyaml("$tmp_file")

    $tmp[var].each |Целое число $i, Хэш[Строка,Строка] $var|
    {
      $mark=$var['Марк']
    }

}

решение1

Из моего опыта работы с puppet, такие вещи, как "before"/"require" и sequencing(->) не очень хорошо работают вместе. Попробуйте удалить sequencing, так как, вероятно, файл не создается...

решение2

Как указано в вызове функции puppetсправочная страницафункции вызываются во время компиляции, поэтому порядок не имеет значения, функция будет вызвана до выполнения модуля.

Связанный контент