꼭두각시 리소스 종속성

꼭두각시 리소스 종속성

Puppet 앱을 실행하면 오류가 발생합니다.

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.

stdlib 모듈의 함수로 loadyaml을 지정했습니다.

하지만 정의하기 전에 파일 리소스를 실행하고 싶습니다.

누구든지 나를 도와줄 수 있나요?

클래스 모드::프린스(

    파일 { '/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, hash[string, string] $var|
    {
      $mark=$var['마크']
    }

}

답변1

Puppet에 대한 내 경험에 따르면 "이전"/"필요" 및 정렬(->)과 같은 작업은 함께 잘 작동하지 않습니다. 파일이 생성되지 않을 수 있으므로 정렬을 제거해 보세요...

답변2

꼭두각시 함수 호출에 지정된 대로참고 페이지, 함수는 컴파일 타임에 호출되므로 순서에 관계없이 모듈이 실행되기 전에 함수가 호출됩니다.

관련 정보