꼭두각시-패키지 및 버전 목록 가져 오기


11

퍼펫에게 하나 또는 모든 노드에 대한 카탈로그를 컴파일하고 해당 특정 데이터를 어딘가에 저장하도록 지시 할 수 있습니까?

특히 필요한 모든 패키지와 노드 당 버전을 얻는 데 관심이 있지만 데이터를 얻는 일반적인 방법도 적합합니다.

답변:


13

최신 정보

원래 답변이 오래되었습니다. Puppet 3.x의 업데이트 된 명령은 다음과 같습니다.

puppet resource package

Puppet에 의해 설치되었는지 여부에 관계없이 노드에 설치된 모든 패키지 및 버전을 찾으려면 다음 명령이 내장되어 있으며 모든 Puppet 노드에서 실행될 수 있습니다.

ralsh package

그러면 Puppet 매니페스트 형식의 데이터가 stdout으로 출력됩니다.

Ralsh는 instances메소드가 구현 된 모든 자원 유형 (사용자, 그룹 등)에 대해 작동합니다.

Puppet 매니페스트에 정의 된 모든 리소스에 대해 YAML 카탈로그를 중앙에서 검사하려는 경우 Puppetmaster는 이미이 정보를 캐시하므로 /var/lib/puppet/client_yaml/catalog선택한 YAML 파서로 파싱하면됩니다. 상당히 최근에 도입 된 Puppet Inventory Service도 좋은 선택입니다. 0.25.x와 같은 이전 버전에서 실행중인 경우 storeconfigs로 수행 할 수 있습니다.


이 방법의 한 가지 문제점은 Red Hat 기반 배포판의 커널 패키지와 마찬가지로 동일한 패키지의 여러 버전을 허용하지 않는다는 것입니다.
Paul Gear

이것이 실제로 질문에 대답하는지 잘 모르겠습니다.이 명령은 Puppet에 필요한 패키지가 아닌 현재 설치된 패키지를 나열합니다 . 나는 그것을 공급할 후자의 목록에 관심이있다 rpmorphan.
Tim Landscheidt

@TimLandscheidt, packagePuppet이 카탈로그에서 노드에 대해 나열한 전체 리소스 목록에 대해 질문하고 있습니까? 캐시 된 카탈로그를 파싱하지 않는다면 PuppetDB를 쿼리하는 것이 가장 좋습니다. 쿼리 API는 여기에서 사용할 수 있습니다 .
jgoldschrafe

@jgoldschrafe 마지막으로 PuppetDB를 설치하고 실제로 원하는 작업을 수행합니다. 특정 호스트에 대해 "ensure"가 "absent"가 아닌 모든 패키지 리소스를 쿼리하고 JSON 결과를 사용하여 목록을 rpmorphan에 공급할 수 있습니다. 감사!
Tim Landscheidt

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.