2012-12-14 2 views
2

필자는 단일 서버에 매우 비슷한 다양한 개체를 추가해야하는 인형 환경을 가지고 있습니다. 객체는 이름 및 경로와 같은 속성에 의해서만 달라지며,이 모두는 단일 이름 매개 변수에서 외삽 될 수 있습니다.리소스 정의가있는 퍼핏 대시 보드

여러 개의 정의를 단일 서버에 추가 할 수 있고 특정 속성을 정의 이름 선언에서 가져올 수 있기 때문에 꼭두각시 자원 정의에 가장 적합한 것처럼 보입니다.

이 설정은 나에게 잘 작동하며 여러 대의 서버에 설치하여 실행하는 데 문제가 없습니다. 그러나 지금은 스크립팅 경험이 거의없는 운영 부서에 넘겨 주어야한다는 요구 사항이 있으므로 파일 시스템을 관리하는 것이 쉽지 않습니다.

그들은 대시 보드를 요청했기 때문에 꼭두각시 대시 보드를 설치했습니다. 그러나 대시 보드를 설정 한 후에는 정의가 아닌 서버에 클래스를 추가하는 것만 지원한다는 것을 알았습니다. 이것은 PuppetLabs의 사람들에게 매우 근시안적 인 것처럼 보입니다. 그래서 나는이 문제를 잘못된 방식으로 접근하고 있고, 거의 동일한 엔티티를 여러 노드가 단일 노드에 추가 할 수있는 클래스를 사용하는 솔루션이 있어야한다고 생각할 수 있습니다.

나는 각 엔티티에 대한 클래스를 만들 수 있다는 것을 알았지 만 수백, 심지어 수천 가지의 잠재적 변이가 있으므로 실용적이지 않습니다.

각 노드별로 각 정의를 선언하는 래퍼 클래스도 고려해 보았습니다.하지만 이는 관리 할 가치가있는 것보다 많은 것처럼 보입니다.

대시 보드와 호환되는 대체 접근법에 대한 의견을 보내 주시면 감사하겠습니다.

답변

0

이렇게 대시 보드와 같은 ENC를 이렇게 만들려면 노드 변수 형태로 노드 데이터를 전달해야합니다. Hiera은 보통 일반 노드 변수보다 바람직합니다.

일반적으로, 당신이 손에 원하는 값은

$resources = [ "name1", "name2", ... ] 

그런 다음이 데이터를 사용하여 정의 된 유형을 instanciates (적어도) 하나 개의 클래스, 예를 들어, 사용하여 노드를 분류하여 자원 제목의 배열입니다

class my_resources { 
    my_defined_type { $resources: } 
}