dependência de recurso de fantoches

0

Olá a todos,

Quando faço uma marionete, recebo o erro:

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.

Eu especifico que loadyaml é uma função do módulo stdlib

No entanto, quero executar o recurso de arquivo antes de definir recurso

Alguém pode me ajudar?

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']
    }

}
    
por souf 21.05.2017 / 18:48

2 respostas

0

Da minha experiência com coisas fantoches como "antes" / "exigem" e o sequenciamento (- >) não funciona muito bem em conjunto. Tente remover o sequenciamento, pois provavelmente o arquivo não está sendo criado ...

    
por 21.05.2017 / 19:30
0

Conforme especificado na função de fantoches, chame página de referência , as funções são chamadas em tempo de compilação, por isso não Não importa qual seja a ordem, a função será chamada antes que o módulo seja executado.

    
por 14.08.2017 / 18:33