commands
지시어 (예 : commands :foo => '/usr/bin/foo'
)를 사용하면 파일이 존재할 때 리소스에 대한 사용이 자동으로 시작됩니다. 다른 작동중인 제공자가없는 경우 제공됩니다.
commands
은 내부적으로 "제한"지시문을 생성하며 파일이있을 때만 실행되도록 공급자를 제한합니다. 비슷한 것들은 "feature"를위한 것입니다. 특정 Ruby 라이브러리 ("feature")가로드되어야합니다. 다른 모든 작업 제공자가없는 카탈로그에 자원이있을 때 공급자에 대한 Puppet 에이전트는 이러한 모든 항목을 지속적으로 재평가해야합니다. --debug
으로 실행할 때
당신은 에이전트에서이 같은 메시지를 볼 수 있습니다 : 파일이 나타납니다
Debug: Puppet::Type::Example::ProviderExample: file /usr/bin/foo does not exist
되면, 메시지를 중지해야하고 공급자를 사용하는 모든 리소스를 실행해야합니다. 파일이 표시되지 않는 경우,이 메시지가 실행 에이전트의 끝으로 나타납니다
Error: Could not find a suitable provider for example
제공이 고려되기 전에
카탈로그는 항상 마스터에 컴파일해야하고 에이전트가있는만큼 실행하려고한다 그 자원에 실패하기 전에 할 수있다.
"올바르게 작동하면 작동합니다!"
디버그 로그 및 공급자 코드를 표시 할 수 있습니까? 이것은 내가 기억하고 신속한 테스트에서 작동합니다. 실행 중에 명령이 사용 가능하게 될 때 중지해야하는 "file/usr/bin/example does not exist"디버그가 표시되어야합니다. 카탈로그 컴파일은 공급 업체의 가용성에 영향을받지 않아야하며, 평가 중에는 상담원 측에만 해당됩니다. –
종속 패키지를 설치 한 코드를 살펴본 결과 작동하지 않았을 것입니다! 그러나 디버그 출력은 시도를 보여 주며, 이는 당신의 요점을 증명합니다. 그러므로 "제대로 작동하면 작동합니다"라고 대답하면 받아 들일 것입니다 :-) –
다행히 생각해보세요. 답변! –