Puppet - Ambiente

Nello sviluppo del software e nel modello di consegna, esistono diversi tipi di ambienti di test che vengono utilizzati per testare un particolare prodotto o servizio. Come pratica standard, ci sono principalmente tre tipi di ambienti come sviluppo, test e produzione, in cui ognuno di essi ha la propria configurazione.

Puppet supporta la gestione di più ambienti sulla stessa linea di Ruby on Rails. Il fattore chiave alla base della creazione di questi ambienti è fornire un meccanismo semplice per la gestione a diversi livelli di accordo SLA. In alcuni casi, la macchina deve essere sempre attiva senza alcuna tolleranza e senza l'utilizzo di vecchi software. In cui altri ambienti sono aggiornati e vengono utilizzati a scopo di test. Sono utilizzati per aggiornamenti per macchine più importanti.

Puppet consiglia di attenersi alla configurazione standard dell'ambiente di produzione, test e sviluppo, tuttavia, qui fornisce anche all'utente la possibilità di creare ambienti personalizzati secondo i requisiti.

Obiettivo ambientale

L'obiettivo principale della configurazione suddivisa in un ambiente è che Puppet possa avere sorgenti differenti per moduli e manifesti. È quindi possibile testare le modifiche alla configurazione nell'ambiente di test senza influire sui nodi di produzione. Questi ambienti possono essere utilizzati anche per distribuire l'infrastruttura su diverse fonti di rete.

Utilizzo dell'ambiente su Puppet Master

Lo scopo di un ambiente è testare quale manifest, modulo, template del file deve essere inviato al client. Pertanto, Puppet deve essere configurato per fornire un'origine specifica dell'ambiente per queste informazioni.

Gli ambienti Puppet vengono implementati semplicemente aggiungendo le sezioni pre-ambiente al file puppet.conf del server e scegliendo un'origine di configurazione diversa per ogni ambiente. Queste sezioni pre-ambiente vengono quindi utilizzate di preferenza rispetto alla sezione principale.

[main] 
manifest = /usr/testing/puppet/site.pp 
modulepath = /usr/testing/puppet/modules 
[development] 
manifest = /usr/testing/puppet/development/site.pp 
modulepath = /usr/testing/puppet/development/modules

Nel codice precedente, qualsiasi client nell'ambiente di sviluppo utilizzerà il file manifest site.pp che si trova nella directory /usr/share/puppet/development e Puppet cercherà qualsiasi modulo in /usr/share/puppet/development/modules directory.

L'esecuzione di Puppet con o senza ambiente imposterà il file site.pp e la directory specificata nei valori manifest e modulepath nella sezione di configurazione principale.

Ci sono solo poche configurazioni che effettivamente ha senso essere configurate prima dell'ambiente, e tutti questi parametri ruotano attorno alla specifica di quali file usare per compilare la configurazione di un client.

Di seguito sono riportati i parametri.

  • Modulepath- In Puppet, come modalità standard di base è meglio avere una directory del modulo standard condivisa da tutti gli ambienti e quindi una directory pre-ambiente in cui è possibile memorizzare il modulo personalizzato. Il percorso del modulo è la posizione in cui Puppet cerca tutti i file di configurazione relativi all'ambiente.

  • Templatedir- La directory dei modelli è la posizione in cui vengono salvate tutte le versioni dei modelli correlati. Il modulo dovrebbe essere preferito a queste impostazioni, tuttavia consente di avere versioni diverse di un dato modello in ogni ambiente.

  • Manifest - Definisce quale configurazione utilizzare come script del punto di ingresso.

Con più moduli, Puppets aiutano a ottenere la modularità per le configurazioni. Si possono usare più ambienti in Puppet che funzionano molto meglio se ci si basa principalmente sui moduli. È più facile migrare le modifiche agli ambienti incapsulando le modifiche nel modulo. Il file server utilizza un percorso del modulo specifico dell'ambiente; se si fa servizio di file da moduli, invece di directory montate separate, questo ambiente sarà in grado di ottenere file specifici dell'ambiente e infine l'ambiente corrente sarà disponibile anche nella variabile $ environment all'interno del file manifest.

Impostazione dell'ambiente client

Tutte le configurazioni relative alla configurazione dell'ambiente vengono eseguite sul file puppet.conf. Per specificare quale ambiente deve utilizzare il client Puppet, è possibile specificare un valore per la variabile di configurazione dell'ambiente nel file puppet.conf del client.

[puppetd] 
environment = Testing

La definizione di cui sopra nel file di configurazione definisce quale ambiente il file di configurazione è nel nostro caso sta testando.

Si può anche specificarlo sulla riga di comando usando -

#puppetd -–environment = testing

In alternativa, Puppet supporta anche l'uso di valori dinamici nella configurazione dell'ambiente. Piuttosto che definire i valori statici, lo sviluppatore ha la possibilità di creare fatti personalizzati che creano un ambiente client basato su altri attributi del cliente o su un'origine dati esterna. Il modo migliore per farlo è utilizzare uno strumento personalizzato. Questi strumenti sono in grado di specificare l'ambiente di un nodo e generalmente sono molto più bravi a specificare le informazioni sul nodo.

Percorso di ricerca dei burattini

Puppet utilizza un semplice percorso di ricerca per determinare quale configurazione deve essere applicata alla macchina di destinazione. Allo stesso modo, il percorso di ricerca in Puppet è molto utile quando si cerca di raccogliere valori appropriati che devono essere applicati. Esistono più posizioni, come elencato di seguito, in cui Puppet cerca i valori che devono essere applicati.

  • Valore specificato nella riga di comando
  • Valori specificati in una sezione specifica dell'ambiente
  • Valori specificati in una sezione specifica dell'eseguibile
  • Valori specificati nella sezione principale