2010-12-13 6 views
24

저는 꼭두각시를 사용해 서버를 구성하고 있습니다. * .erb 템플릿에 현재 기계 (노드) 이름을 인쇄하고 싶습니다. 호스트 이름 변수가 있지만 puppetmaster 호스트 이름을 포함합니다. 이 주제와 관련하여 좋은 참조/목록이 있습니까?꼭두각시 노드 호스트 이름

답변

28

나는 어딘가에 놓친 것 같습니다.

<%= @hostname %> 

편집 : 나는 * .erb 템플릿에 다음 코드를 호출하여 간단하게 (인쇄) 노드 호스트 이름을 얻을 수있는 인형 (3)으로, 지역 변수를 사용하여 (즉, hostname이되지 않습니다, 인형 4 그들에 대한 지원을 제거합니다 . 완전히 권장되는 방법은 인스턴스 변수를 사용하는 것입니다 (@로 시작,이 경우에 그래서 @hostnameSource

+0

아를 사용하기위한 동안 "hostname" "myhost"와 같은 짧은 버전 (hostname -s 명령으로 반환되는 버전)을 얻습니다. 어떤 경우에도 나는 puppetmaster 호스트를 얻지 못한다. – PierluigiVernetto

23

당신의 ERB 파일에서 사용할 변수를 반환 터미널에 다음 명령을 입력 :..

facter --puppet 
+1

좋아요! 그것은 많은 도움이됩니다. –

+1

예! 이것은 유용한 지식입니다. – JCotton

+1

이 답변은 내가 '호스트 이름'을 원하지 않지만 'fqdn'대신 내 응용 프로그램을 형성 함을 보여줍니다. –

6

위의 모든 항목에 예; 당신은 또한 당신이 무엇에 달렸는지에 따라 유용한 fqdn 변수를 유용하게 찾을 수 있습니다.

템플릿의 꼭두각시 마스터 서버의 정보를 필요로하는 자신을 발견 할 경우, 당신이 변수를 사용할 수 있습니다 servername, serveripserverversion (From the FAQ).

2

그러나 이것은 노드 이름이 아니라 원래 호스트 이름 인 호스트 이름입니다. 99 %의 경우, 이들은 동일합니다. AFAIK 템플릿에 실제 노드 이름을 얻을 수있는 방법이 없습니다. (있는 경우, 그것을 듣고 싶습니다.)

4

분명히 당신은 지금

<%= fqdn %> 

를 사용하여 DNS 이름을 역 얻을 수 있습니다. 당신이 그것을 소문자로해야하는 경우

, 내가 있기 때문에 "FQDN"나는 ("myhost.acnemcom"같은) 전체 호스트 이름을 얻기위한 내 경우에는 정말 당황했다, ​​정확히

<%= fqdn.downcase %> 
관련 문제