Puppet: ottieni l'elenco di pacchetti e versioni


11

È possibile dire a Puppet di compilare un catalogo per uno (o tutti) i nodi e salvare quei dati particolari da qualche parte?

Sono specificamente interessato a ottenere tutti i pacchetti necessari e le loro versioni per nodo, ma è anche adatto un approccio generale per ottenere qualsiasi dato.

Risposte:


13

AGGIORNARE

Questa risposta originale non è più aggiornata. Il comando aggiornato per Puppet 3.x è:

puppet resource package

Se stai cercando tutti i pacchetti e le versioni installati su un nodo indipendentemente dal fatto che siano installati o meno da Puppet, il comando seguente è integrato e può essere eseguito su qualsiasi nodo Puppet:

ralsh package

Ciò genererà i dati in una forma manifest Puppet su stdout.

Ralsh funzionerà per qualsiasi tipo di risorsa che ha instancesimplementato il metodo (utenti, gruppi, ecc.).

Se stai cercando di ispezionare centralmente il catalogo YAML per tutte le risorse definite nei manifesti Puppet, il tuo Puppetmaster memorizza già queste informazioni nella cache /var/lib/puppet/client_yaml/cataloge devi solo analizzarle con il tuo parser YAML preferito. Il servizio di inventario delle marionette che è stato introdotto abbastanza di recente potrebbe anche essere una buona opzione per te; puoi accontentarti di storeconfigs se stai eseguendo una versione precedente come 0.25.x.


Un problema con questo approccio è che non consente più versioni dello stesso pacchetto, come è comune con il pacchetto kernel nelle distribuzioni basate su Red Hat.
Paul Gear,

Non sono sicuro che questo risponda davvero alla domanda: il comando elenca i pacchetti attualmente installati , non i pacchetti richiesti da Puppet. Sono interessato a un elenco di questi ultimi per dargli da mangiare rpmorphan.
Tim Landscheidt,

@TimLandscheidt, stai chiedendo l'elenco completo delle packagerisorse che Puppet elenca nel catalogo per un nodo? A meno che non ti senta di analizzare il catalogo memorizzato nella cache, la soluzione migliore sarebbe quella di interrogare PuppetDB. L'API di query è disponibile qui .
jgoldschrafe,

@jgoldschrafe Finalmente sono riuscito a installare PuppetDB, e in effetti fa quello che voglio. Posso eseguire una query per tutte le risorse del pacchetto che hanno "garantire" non uguale a "assente" per un host specifico e utilizzare il risultato JSON per alimentare un elenco di rpmorphan. Grazie!
Tim Landscheidt,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.