Puppet – Infrastructure As Code

Gestione dell’infrastruttura di rete in forma centralizzata e versionata

Puppet si occupa di effettuare e mantiene le modifiche di configurazione delle singole macchine. Le macchine, attraverso agent, sono configurate per interpretare il codice Puppet.

Ecco descritto il tipico workflow di una variazione.

  • I DevOps MMUL modificano il codice Puppet.
    • Il codice è sottoposto a versioning mediante GIT, per permettere la modifica contemporanea a più utenti e la storicizzazione del codice.
    • E’ possibile ripristinare qualsiasi modifica.
  • Ogni modifica viene simulata, prima di essere applicata.
  • Ogni modifica può essere applicata alla precisa porzione di macchine necessaria:
    • l’intera infrastruttura;
    • solo specifici ambienti (collaudo, produzione);
    • solo specifici ruoli (frontend web, macchina applicativa);
    • una o più specifiche macchine.

Prerogative di Puppet

Puppet tiene traccia delle modifiche alle configurazioni, sia dei server applicativi che di quelli infrastrutturali.

  • Nel codice Puppet sono definite le variabili valorizzate in maniera specifica per ambiente, ruolo o singolo host.

Ogni macchina verifica la propria configurazione col server Puppet ogni 30 minuti.

  • La configurazione presente sul server Puppet viene applicata in caso di differenze.

Puppet gestisce la configurazione e distribuzione del software, compresi agent per:

  • rilevamento performance (telegraf);
  • monitoraggio (NRPE);
  • sicurezza (FireEye, Cynet, Antivirus);
  • log (Filebeat).

Servizi di supporto

  • Gli allarmi (Nagios) avvertono di eventuali problemi in corso.
  • I grafici (Grafana) mostrano i dati sia in tempo reale che storicizzati (InfluxDB).
  • I log applicativi sono raggruppati e consultabili mediante specifiche query, sia in tempo reale che storicizzati (Graylog).
  • Apposite notifiche danno notizia di aggiornamenti di sistema o errata disponibili (Spacewalk).
Top