2014-05-21 3 views
0

각 클래스에서 동일한 코드를 반복하지 않고 다른 클래스의 내용을 단일 정의로 사용하고 싶습니다. 올바른 방법은 무엇입니까? 이러는거야? 예를 들어 ...다른 클래스에서 상속받은 init.pp에서 사용되는 퍼핏 속성 정의

class example::code1 (
    $my_password = 'password', 
) 

class example::code2 (
    $my_password = 'password', 
) 

내가 원하는 것은 단지 다른 모든 클래스에 의해 상속 될 것이다 init.pp 파일이 포함 my_password 관련을 가지고있다 (이 구문에 대한 나의 사과, 사이비 코드입니다). 이것이 가능하다면, 기존 수업에 무엇을 넣어야합니까? init.pp에서 이것을 정의하면 다른 클래스에서 사용할 때 값을 덮어 쓰게됩니까? 아니면 init.pp 파일을 어떻게 든 참조해야합니까? 이것이 멍청한 질문이라면 나는 사과한다, 나는 꼭두각시에 대해 아주 새로운 사람이다.

답변

0

Puppet에 오신 것을 환영합니다.

노드에 데이터를 제공하는 방법은 여러 가지가 있습니다.

  1. 퍼핏 대시 보드와 같은 ENC를 사용하는 경우 값을 지정할 수 있습니다.
  2. Hiera는 데이터를 할당하는 데 권장되는 방법입니다.
  3. 변수 할당을 클래스 외부의 전역 범위에 넣을 수 있습니다.
  4. 당신은 클래스와 사용 가치가 거기에

예를 선언 포함 할 수 있습니다

class config { 
    $password = 'foo' 
} 

class something { 
    include config 
    $pw = $config::password 
} 

처럼 사용하는 다른 대안이있을 수 있습니다. 아마 Hiera을 먼저보아야합니다.

+0

완벽한 답변, 감사합니다! 나중에 Hiera를 볼 수 있습니다. 그것은 다소 혼란스럽게 보입니다. 당신이 제공 한 방법은 그 자리에 보입니다 : D – keeer

+0

도움이 된 것을 기쁘게합니다. 힌트 * 힌트 * 당신을 위해 작동하는 경우 대답을 받아 들일 수 있습니다. –

관련 문제