2014-10-23 5 views
1

처음에는 구성 및 환경을 초기 상태로 유지하려고 시도한 채 꼭두각시를 잡을 때가 있습니다. . 꼭두각시가 내 고객에게 파일을 배포하도록하는 것으로 시작했습니다. 그러나 필자는 파일을 배포하는 방식이 그렇게하는 가장 효율적인 방법이 아니라는 생각을 갖습니다. 모든 파일에 대해 다음과 같이 지정합니다.각 파일을 별도의 리소스 내에서 복사해야합니까?

file { "/etc/ntp.conf": 
       owner => 'root', 
       group => 'root', 
       mode => '0444', 
       source => 'puppet://basxtststinfl01/files/etc/ntp.conf', 
     } 
     file { "/etc/snmp/snmpd.conf": 
       owner => 'root', 
       group => 'root', 
       mode => '0644', 
       source => 'puppet://basxtststinfl01/files/etc/snmpd.conf', 
     } 

배포 할 파일이 15 개 있습니다. 이것이 올바른 접근 방법입니까?

감사합니다.

답변

1

파일이 좋은 키워드입니다 :

일부 자원 .

일반적으로 반복적 인 리소스 문제를 해결하기 위해 정의 된 형식으로이를 래핑 할 수 있습니다.당신은 URL을 사용자 정의 할 수 있도록 더 많은 매개 변수를 추가 할 수 있습니다

deployed_file { 
    '/etc/ntp.conf': 
     mode => '444'; 
    '/etc/snmp/snmpd.conf': 
} 

: 위에서

define deployed_file($ensure = 'present', 
        $owner = 'root', 
        $group = 'root', 
        $mode = '644', 
        $recurse = '') { 
    if $recurse != '' { File { recurse => $recurse } } 
    file { 
     $name: 
      ensure => $ensure, 
      owner => $owner, 
      group => $group, 
      source => "puppet://basxtststinfl01/files${name}", 
    } 
} 

귀하의 자원은 다음과 같이 쓸 수있다.

후손을 위해 recurse 매개 변수를 추가했음을 유의하십시오. file에는 많은 특성이 있으며 deployed_file을 지원해야하는 경우이 방법으로 추가해야 지정에 따라 file으로 감싸 지지만 그렇지 않은 경우 무시됩니다.

1

나는 이것이 '올바른 접근법'인지 아닌지에 대한 질문을 정확히하고 있지만 '때로는 달라지기'때문에 듣기가 짜증나는 경우도 있습니다. ...

이렇게하면 접근 방식이 지정됩니다. 사용자가 지정한대로 정확하게 선언 한 15 개 정도의 파일을 배포합니다.

그것은 그러나, 이러한 정적 파일이기 때문에 그들이 basxtststinfl01

에 기록 된대로 파일의 정확한 유지 보수를 필요로 희생 오는가 당신은 당신이 많은 조항에 꼭두각시 코드를 실행에 와서는 제한적인 경우 찾을 수 있습니다 다른 서버.

옵션으로! 네가 거기에 제시 한 예는 꼭두각시 모듈의 문맥 - 시스템의 특정 서비스 나 논리적 유닛을 구성하는 재사용 가능한 코드 -로 생각할 수있다.

ntp의 경우에는 로직을 포함하는 ntp puppet labs module이있다. ntp.conf 파일을 열고 변수를 구성하는 매개 변수로 사용합니다. 이것은 꼭두각시 선언을 줄이고 더 많은 서버를 프로비저닝하기 위해 다시 사용할 수있게 해줍니다. 이를 구성하는 방법의 예가 puppetlabs-ntp 모듈의 설명서에 나와 있습니다.

class { '::ntp': 
    servers => [ 'ntp1.corp.com', 'ntp2.corp.com' ], 
} 

더 자주, 누군가가 제공 원하는 시스템의 일부는 Puppet Forge

은 단위로 시스템 요구 사항 분해 및 모듈을 사용하여 참조를 지정할 수 있음을 의미하는 모듈을 작성했습니다이 아닌 구성 파일은 시스템마다 다를 수있는 변수에 따라 동적으로 구성됩니다.

가장 좋은 방법은 puppetlabs 웹 사이트의 우수한 문서를 통해 작품 : 모듈에