나는 Vagrant를 사용하여 Puppet을 실험하고 있습니다. 나는 꼭두각시를 처음 보았습니다.Puppet을 설치 한 직후 모듈의 클래스를 사용하는 방법은 무엇입니까?
$dsesterojava = 'dsestero-java'
exec { 'dsestero-java':
command => "puppet module install ${dsesterojava}",
unless => "puppet module list | grep ${dsesterojava}",
path => ['/usr/bin', '/bin']
}
include java::java_7
내가 바로 다음 모듈을 가져 오기 위해 노력하고있어 : Can I install puppet modules through puppet manifest?이
내 default.pp 같은 것을 포함 나는 방법을 사용하여 매니페스트 내 꼭두각시 모듈을 설치하고있어
은에 제안 그 안에 정의 된 클래스를 사용하십시오.
현재, 내가 얻을 : 나는 주석 경우
Error: Could not find class java::java_7
이 (가) 줄을 포함하고 다시 실행을. 모듈이 설치됩니다. 그런 다음 주석을 제거하고 프로비저닝을 다시 실행하면 작동합니다.
여기에는 "닭고기와 계란"상황이 있습니다. 모듈을 설치하는 동일한 Puppet 매니페스트에서 모듈을 사용할 수 있습니까?
어떻게 해결해야합니까?
아니요,이 작업을 수행 할 수 없습니다. 카탈로그가 컴파일되면 꼭두각시는 필요한 모든 코드와 데이터를 검색합니다. 'java' 모듈은 카탈로그 어플리케이션이 존재할 때까지 존재하지 않기 때문에, 그것에 의존하는 카탈로그의 컴파일은 실패 할 것입니다. 당신은 절대적으로 "닭고기와 계란"상황을 여기에서 다루고 있습니다. Puppet 코드를 설치하는 데 Puppet 코드를 사용하지 않는 것이 좋습니다. –
또한 제공된 링크는이 방법을 제안하는 것이 아니라 사서 사서 - 꼭두각시를 사용하는 것입니다.그 방법 (또는 후계자 r10k 및 코드 관리자)은이 접근 방법보다 강력하게 권장됩니다. –
감사합니다. @MattSchuchard. 저는 꼭 꼭두각시를 배우고 있습니다 만, 우리는 Puppet Enterprise를 로컬에두고 있습니다. 지금 막 r10k를 사용했음을 알았습니다. –