
새 노드를 프로비저닝할 때 한 노드의 구성을 업데이트하는 가장 좋은 방법은 무엇입니까?
예를 들어 클러스터와 같은 환경이 있다고 가정해 보겠습니다.
저는 노드를 프로비저닝 중입니다. 이 노드가 다른 노드(역시 Puppet으로 관리됨)에 있는 Memcached 또는 MySQL 서버에 액세스해야 한다고 가정해 보겠습니다.
이제 새 노드를 추가할 때 새 노드가 작업을 시작할 수 있도록 다른 노드에 필요한 iptables 구성이나 기타 초기 구성 단계를 업데이트하려면 어떻게 해야 합니까?
저는 현재 이러한 작업을 위해 자체 개발한 "프로비저닝" 시스템을 사용하고 있습니다. 이와 같은 작업에 꼭두각시를 사용하는 편리한 방법이 있습니까?
답변1
특별히 간단하지는 않지만 표준 Puppet 리소스를 사용하면 가능합니다.
다음과 같은 구성의 경우방화벽 규칙모니터링을 하면 매우 쉽게 사용할 수 있습니다.수출된 자원다음과 같은 저장된 구성 백엔드와 함께퍼핏DB.
내보낸 리소스의 기본 아이디어는 Puppet 매니페스트가 대상 노드에서 실행될 때 일부 리소스를 '내보내고' 저장한다는 것입니다. 이러한 리소스를 수집하고 자체 매니페스트에 적용하도록 다른 노드를 구성할 수 있습니다.
다른 구성의 경우 좀 더 현명하게 다음을 사용해야 할 수도 있습니다.연결내보낸 리소스 외에 모듈 - 예를 들어 이론적으로 내보낸 concat::fragment 리소스를 사용하고 정보가 필요한 리소스(예: 데이터베이스 자격 증명 또는 로드 밸런서 IP)를 수집할 수 있습니다.
답변2
이는 Puppet에서 잘 지원되지 않습니다. 이런 종류의 정보를 얻으려면PuppetDB 쿼리. 제가 아는 한 Puppet에는 이 자체를 수행하는 기능이 포함되어 있지 않습니다.꼭두각시-puppetdbquery라고 덧붙입니다.여기 튜토리얼이 있습니다PuppetDB의 데이터로 구성 파일을 생성하기 위해 두 가지를 합치는 방법에 대해 설명합니다.