Puppet - File manifest
In Puppet, tutti i programmi scritti utilizzando il linguaggio di programmazione Ruby e salvati con un'estensione .pp sono chiamati manifests. In termini generali, tutti i programmi Puppet costruiti con l'intenzione di creare o gestire qualsiasi macchina host di destinazione sono chiamati manifest. Tutti i programmi scritti in Puppet seguono lo stile di codifica Puppet.
Il fulcro di Puppet è il modo in cui le risorse vengono dichiarate e il modo in cui queste risorse rappresentano il loro stato. In qualsiasi manifest, l'utente può avere una raccolta di diversi tipi di risorse che vengono raggruppate insieme utilizzando la classe e la definizione.
In alcuni casi, il file manifest di Puppet può anche avere un'istruzione condizionale per ottenere uno stato desiderato. Tuttavia, alla fine tutto si riduce a garantire che tutte le risorse siano definite e utilizzate nel modo giusto e che il manifest definito quando applicato dopo essere stato convertito in un catalogo sia in grado di eseguire l'attività per cui è stato progettato.
Flusso di lavoro del file manifest
Il manifesto delle marionette è costituito dai seguenti componenti:
Files (questi sono file semplici in cui Puppet non ha nulla a che fare con loro, solo per raccoglierli e posizionarli nella posizione di destinazione)
Resources
Templates (questi possono essere usati per costruire file di configurazione sul nodo).
Nodes (tutta la definizione relativa a un nodo client è definita qui)
Classes
Punti da notare
In Puppet, tutti i file manifest utilizzano Ruby come linguaggio di codifica e vengono salvati con .pp estensione.
L'istruzione "Import" in molti manifest viene utilizzata per caricare i file all'avvio di Puppet.
Per importare tutti i file contenuti in una directory, puoi utilizzare l'istruzione import in un altro modo, ad esempio import 'clients / *'. Questo importerà tutto.pp file all'interno di quella directory.
Manifesti di scrittura
Lavorare con le variabili
Durante la scrittura di un manifest, l'utente può definire una nuova variabile o utilizzare una variabile esistente in qualsiasi punto di un manifest. Puppet supporta diversi tipi di variabili, ma poche di esse vengono utilizzate frequentemente come stringhe e array di stringhe. Oltre a questi, sono supportati anche altri formati.
Esempio di variabile stringa
$package = "vim"
package { $package:
ensure => "installed"
}
Utilizzo dei loop
I cicli vengono utilizzati quando si desidera eseguire più iterazioni su uno stesso insieme di codice fino a quando non viene soddisfatta una condizione definita. Sono anche utilizzati per eseguire attività ripetitive con diversi set di valori. Creazione di 10 attività per 10 cose diverse. È possibile creare una singola attività e utilizzare un ciclo per ripetere l'attività con diversi pacchetti che si desidera installare.
Più comunemente un array viene utilizzato per ripetere un test con valori diversi.
$packages = ['vim', 'git', 'curl']
package { $packages:
ensure => "installed"
}
Utilizzo di condizionali
Puppet supporta la maggior parte della struttura condizionale che può essere trovata nei linguaggi di programmazione tradizionali. La condizione può essere utilizzata per definire dinamicamente se eseguire una particolare attività o se deve essere eseguito un insieme di codice. Come if / else e case statement. Inoltre, condizioni come execute supporteranno anche attributi che funzionano come condition, ma accettano solo l'output di un comando come condizione.
if $OperatingSystem != 'Linux' {
warning('This manifest is not supported on this other OS apart from linux.')
} else {
notify { 'the OS is Linux. We are good to go!': }
}