Per poter iniziare a configurare risorse sui client, è necessario procedere a configurare il PuppetMaster e, soprattutto, scrivere del codice Puppet.
A livello di configurazione generale, non è necessario fare modifiche particolari a puppet.conf: le impostazioni di default sono sufficienti per operare, anche se in molti casi ne vengono modificati alcuni parametri.
Il primo manifest (file in linguaggio Puppet) che di default viene letto dal Puppet Master è /etc/puppet/manifests/site.pp
qui si possono iniziare ad importare altri manifest o definire direttamente i nodi da utilizzare e le rispettive risorse.
Per importare specificatamente altri manifest la sintassi è:
import /path/file.pp
con il path che può anche essere relativo.
I moduli (insieme di manifest e file strutturati secondo uno specifico standard) vengono caricati automaticamente se si trovano in una delle directory definite nel parametro di configurazione modulepath (di default /usr/share/puppet/modules
e /etc/puppet/modules
).
Esistono due diversi modi per definire i nodi (host) da gestire e le risorse che devono avere:
- definizione dei nodi in manifest;
- utilizzo di uno strumento esterno per definire nodi, vriabili e classi da includere.
Per il secondo caso sono necessarie alcune configurazioni extra e, soprattutto, va usato o sviluppato uno strumento dedicato. Nel mondo Puppet ne esistono due, particolarmente noti ed utilizzati, Puppet Dashboard (sviluppato sempre da PuppetLabs) e The Foreman.
Per il primo caso, che non richiede utleriori configurazioni o installazioni, si definiscono i nodi da gestire tramite il loro FQDN, direttamente in site.pp o più spesso in manifest ivi importati.
La sintassi per definire un nodo è la seguente:
node 'fileserver.example42.com' {
[...] Qui di possono includere classi, dichiarare variabili o inserire direttamente delle risorse Puppet
}
Il servizio si avvia con un prevedibile /etc/init.d/puppetmaster start
Puppet è un potente strumento di system automation che permette la gestione centralizzata di una infrastruttura di sistemi Unix.