Perché usare Puppet per l'automazione e l'orchestrazione

Puppet l'azienda fattura Puppet lo strumento di automazione come lo standard de facto per automatizzare la consegna e il funzionamento continuo dell'infrastruttura ibrida. Questo era certamente vero una volta: Puppet non solo risale al 2005, ma attualmente rivendica anche 40.000 organizzazioni in tutto il mondo come utenti, incluso il 75 percento delle Fortune 100. Sebbene Puppet sia ancora un prodotto molto forte e ha aumentato la sua velocità e negli anni i suoi concorrenti, in particolare Chef, hanno accorciato le distanze.

Come ci si potrebbe aspettare dal doyenne dello spazio di automazione IT, Puppet ha una raccolta molto ampia di moduli e copre la gamma da CI / CD a infrastruttura cloud-native, sebbene gran parte di tale funzionalità sia fornita attraverso prodotti aggiuntivi. Sebbene Puppet sia principalmente un sistema basato su modelli con agenti, supporta operazioni push con Puppet Tasks. Puppet Enterprise è anche disponibile come servizio su Amazon.

Prodotti burattini

Le attuali offerte di Puppet includono Puppet open source, Puppet Enterprise, Puppet Pipelines, Puppet Discovery, Puppet Bolt, Puppet Container Registry e Puppet Forge. Puppet open source, un motore di amministrazione automatizzato per i sistemi Linux, Unix e Windows, esegue attività amministrative (come l'aggiunta di utenti, l'installazione di pacchetti e l'aggiornamento delle configurazioni del server) in base a una specifica centralizzata.

Puppet Enterprise aggiunge funzionalità di orchestrazione, una console Web e supporto professionale a Puppet open source. Ti aiuta a scalare l'automazione in modo ampio e profondo nella tua infrastruttura e a mantenerla conforme. Puppet Discovery scopre l'infrastruttura tradizionale, le risorse cloud native e i container e ti consente di gestirli.

Devops delle marionette

Puppet Pipelines è una piattaforma di integrazione continua / distribuzione continua, disponibile come servizio ospitato e installazione in locale. Esistono due versioni separate di Pipeline, per applicazioni e per container con Kubernetes.

La funzione Puppet Tasks senza agente consente di eseguire attività ad hoc, a differenza dell'automazione basata su modello con agenti. Tasks è disponibile in due versioni: Puppet Bolt open source e Puppet Enterprise Task Management. Bolt è destinato a infrastrutture più piccole, mentre Enterprise Task Management, un componente di Puppet Enterprise, è destinato a infrastrutture su larga scala che necessitano di controllo degli accessi basato sui ruoli, audit trail e flussi di lavoro orientati al team.

Puppet Container Registry (ex Distelli Europa), disponibile nelle versioni gratuita, premium (o team) ed enterprise, fornisce una vista unificata dei registri locali e remoti per i container Docker. La versione premium aggiunge il supporto multiutente e il controllo degli accessi; la versione aziendale aggiunge il Single Sign-On.

Puppet Forge

Puppet Forge è un repository di moduli per Puppet open source e Puppet Enterprise. Attualmente contiene oltre 5.500 moduli precostruiti. Alcuni moduli hanno Puppet Tasks, ma non tutti. Alcuni moduli sono testati e supportati da Puppet come parte di Puppet Enterprise, mentre altri sono approvati solo da Puppet.

Ogni modulo ha i propri prerequisiti e la propria procedura di installazione. Non dirò "Here be dragons", ma dirò che l'installazione dei moduli è un'area in cui Puppet non cerca nemmeno di camuffare le sue radici come strumento per gli amministratori di sistema Linux / Unix, anche se funziona abbastanza bene con Windows in questi giorni (tranne come Master).

Puppet Enterprise

Puppet Enterprise è una piattaforma unificata che combina un approccio di configurazione basato sul modello con l'esecuzione imperativa delle attività, in modo da poter gestire l'infrastruttura ibrida. Supporta le pratiche devops come il controllo della versione, la revisione del codice, i test automatizzati, l'integrazione continua e la distribuzione automatizzata. Puoi anche utilizzare Puppet per migrare i carichi di lavoro su cloud, container e cloud ibrido. Puppet consente di applicare lo stato desiderato delle configurazioni, correggere automaticamente eventuali modifiche impreviste e automatizzare le attività ad hoc.

Puppet Enterprise aiuta a ridurre i rischi associati a configurazioni errate della sicurezza e controlli non riusciti applicando continuamente le policy di sicurezza e dimostrando la conformità. Fondamentalmente, il Puppet Master invia automaticamente (push) i cataloghi ai suoi client ogni mezz'ora e gli agenti Puppet sui client confrontano quindi quel catalogo con i fatti sulla sua configurazione esistente e applicano le modifiche se necessario. Quindi gli agenti restituiscono un rapporto sullo stato al master, che può generare un rapporto di conformità generale. La sicurezza e la conformità vengono gestite come parte della gestione della configurazione principale di Puppet, non in un componente separato.

Puppet nel cloud

Puppet Enterprise è integrato con i principali fornitori di servizi cloud: Amazon, Microsoft, VMware e Google. Ti consente di semplificare la gestione delle risorse di elaborazione, archiviazione e rete e ridimensionare i carichi di lavoro in ambienti eterogenei. La funzionalità si trova principalmente nei moduli specifici del cloud, ad esempio il modulo puppetlabs / aws, che fornisce un'interfaccia all'API AWS e consente non solo di eseguire il provisioning delle istanze, ma anche di descrivere l'intera infrastruttura AWS e di modellare le relazioni tra i diversi componenti.

Puppet Enterprise attualmente non supporta le funzioni serverless. Puppet Pipelines, un'altra parte del portfolio, è uno strumento per la gestione del ciclo di vita del rilascio del codice dell'app per sviluppatori, che può includere funzioni senza server.

Kit di sviluppo dei burattini

Puppet consente uno sviluppo personalizzato approfondito permettendoti di scrivere i tuoi moduli. Ora offre un kit di sviluppo che semplifica la generazione di nuovi moduli e rende anche possibile la conversione dei vecchi moduli per renderli compatibili con il Puppet Development Kit (PDK). Il PDK include strumenti di test, un modello di modulo completo (come file YAML, Ruby e Ruby incorporati) e strumenti a riga di comando per aiutarti a creare, convalidare ed eseguire test sui moduli Puppet.

Installazione e configurazione di Puppet

Esistono due modi principali per installare effettivamente Puppet Enterprise: utilizzando AWS OpsWorks o scaricandolo e installandolo da solo in locale o in una o più istanze cloud. (La gestione di un massimo di 10 nodi è gratuita.) Prima di provare una di queste installazioni, potresti voler imparare a usare Puppet con la VM di apprendimento di Puppet o l'emulatore online di Puppet mostrato di seguito.

Utilizzando AWS OpsWorks per Puppet Enterprise, un servizio gestito, puoi avere un Puppet master completamente configurato e funzionante su AWS in meno di 20 minuti. OpsWorks è una buona scelta per piccoli team e negozi che non possono o non vogliono gestire la propria infrastruttura Puppet.

I passaggi di base per la creazione di un'istanza AWS OpsWorks for Puppet Enterprise iniziano con il download e l'installazione degli strumenti client AWS CLI, Git e Puppet Enterprise. Crea una chiave SSH, configura un account GitHub utilizzando la chiave SSH, accedi alla console AWS, vai al servizio OpsWorks e fai clic su "Crea server Puppet Enterprise". Assegna un nome breve al tuo server, scegli una regione e seleziona il tipo di istanza c4.large. Nella pagina successiva, supponi di non utilizzare una chiave SSH (per AWS, questo non ha nulla a che fare con la chiave SSH GitHub) e fornisci un collegamento al tuo repository di controllo GitHub. Accetta le impostazioni predefinite nella pagina delle impostazioni avanzate, avvia l'istanza del server e scarica sia le credenziali che lo Starter Kit prima che l'istanza termini l'inizializzazione. Il resto di ciò di cui hai bisogno è nello Starter Kit,ma a questo punto avrai già un Master funzionante che impone la propria configurazione.

L'installazione di Puppet Enterprise da soli è un'operazione molto più lunga e complicata e consente di eseguire un aggiornamento ogni volta che Puppet rilascia una nuova versione. D'altra parte, puoi sfruttare le risorse del server che già possiedi.

È possibile installare Puppet Enterprise con un programma di installazione basato sul Web o di testo su un sistema RHEL, Ubuntu LTS o Suse Linux, dopo aver scaricato il tarball appropriato e verificato la sua impronta digitale. Dovrai fornire la tua email per ottenere il collegamento. Suggerirei di iniziare con un'installazione mono (tutto su un nodo) basata sul web e prendere tutte le impostazioni predefinite. Puoi sempre eseguire l'aggiornamento in seguito. Puoi evitare la maggior parte dei problemi se inizi con una nuova immagine del sistema Linux: non "aiutare", ad esempio, installando PostgreSQL in anticipo.

-

Costo: Puppet open source: gratuito. Puppet Enterprise: 10 nodi gratuiti, $ 120 / nodo / anno fino a 500 nodi con supporto standard. Puppet Discovery è attualmente in anteprima tecnica. Puppet Pipelines: cinque nodi gratuiti, $ 29,99 / nodo / mese fino a 100 nodi con supporto standard.

Piattaforma: Master: Red Hat, SUSE o Ubuntu Linux. Agenti: Linux, Windows Vista o successivo, MacOS 10.10 o successivo, Solaris 10 o 11. Cloud master disponibile come AWS OpsWorks for Puppet Enterprise.