Vai al paragrafo

Concetti essenziali di Ansible e Chef

Copia URL

Ansible® e Chef sono strumenti open source per l'automazione dell'IT sviluppati dalla community. Entrambi sono in grado di semplificare le operazioni IT e DevOps automatizzando le attività di routine come la configurazione e il provisioning dei sistemi, il deployment dei software e la gestione degli aggiornamenti su numerosi server e dispositivi endpoint.

Ansible è uno strumento di facile utilizzo poiché, grazie al flessibile approccio agentless, non richiede l'installazione di software aggiuntivi sui target da automatizzare. Chef è invece una soluzione basata su agente e richiede l'installazione di un software aggiuntivo su ciascuna macchina. Ansible e Chef si distinguono anche nell'approccio al linguaggio di automazione: Ansible usa YAML, un linguaggio di configurazione Python di facile apprendimento e indirizzato agli amministratori, mentre Chef usa Ruby, un linguaggio DSL (Domain Specific Language) orientato agli sviluppatori, con una curva di apprendimento più ripida.

Questo articolo illustra in maniera approfondita le analogie e le differenze fra Ansible e Chef.

Ansible

Ansible è un'applicazione software open source a riga di comando per l'automazione dell'IT scritta in linguaggio Python.È in grado di configurare i sistemi, distribuire i software e orchestrare i flussi di lavoro avanzati per supportare il deployment delle applicazioni, gli aggiornamenti di sistema, la configurazione e le operazioni delle reti e altre attività. Red Hat Ansible Automation Platform è un prodotto acquistabile tramite sottoscrizione che si basa sulla tecnologia Ansible integrata da numerose funzionalità pensate per le aziende.

Il vantaggio che contraddistingue Ansible è la community. Il suo repository GitHub principale, da cui dipendono decine di migliaia di altri repository, attira migliaia di contributori (informazioni aggiornate all'autunno 2022). L'AnsibleFest, una conferenza dedicata agli utenti, viene organizzata ogni anno all'interno del Red Hat Summit e si tengono Ansible Meetup regolarmente in tutto il mondo. Questa community conta su un elevato numero di esperti e contributori che collaborano per garantire la completa e costante integrazione di Ansible con i progetti software più importanti. Inoltre, gli utenti hanno accesso a centinaia di moduli e plugin con cui possono ampliare le funzionalità di Ansible. 

Ansible è pensato prettamente per offrire facilità di utilizzo, ma anche per garantire sicurezza e affidabilità, come dimostra il numero di parti mobili ridotto al minimo. Utilizza OpenSSH per il trasporto (ma sono disponibili anche altre modalità di trasporto e pull) e un linguaggio leggibile in chiaro che non richiede particolare formazione e mette quindi gli utenti in condizione di utilizzare Ansible fin da subito.

ll funzionamento di Ansible prevede un nodo di controllo (il punto da cui si esegue Ansible) e una serie di nodi gestiti (i dispositivi da automatizzare) che possono essere sistemi Linux® o Windows. Dato che è agentless, Ansible è in grado di comunicare con i dispositivi senza installare applicazioni o servizi sui nodi gestiti. Una tecnologia chiamata Automation Mesh consente ad Ansible Automation Platform di distribuire i processi di automazione sui nodi di esecuzione.  

Gli utenti di Ansible possono orchestrare le diverse parti dell'infrastruttura tramite gli Ansible Playbook, file scritti nel linguaggio YAML, leggibile in chiaro. Ansible utilizza un approccio di programmazione procedurale (o imperativo), che tenta di preservare la configurazione di un'infrastruttura IT definendo i passaggi per raggiungere la condizione target.

Chef

Chef è una piattaforma open source per l'automazione dell'IT scritta in linguaggio Ruby che trasforma l'infrastruttura in codice. In modo simile agli Ansible Playbook, Chef utilizza definizioni riutilizzabili note come cookbook e recipe (alla lettera, libri di cucina e ricette, da cui il nome del prodotto) per automatizzare la configurazione, il deployment e la gestione dell'infrastruttura nelle reti, in ambienti on premise, nel cloud o ibridi.  

A differenza di Ansible, Chef utilizza un'architettura basata su agente, nella quale il server Chef viene eseguito nel sistema principale, mentre il client Chef viene eseguito come agente su ogni sistema client. La workstation è un ulteriore componente che contiene tutte le configurazioni testate e inviate dal server Chef principale alle macchine client senza alcun comando. La gestione di queste configurazioni pull richiede la presenza di programmatori esperti; l'uso di Chef è pertanto più complicato rispetto a quello di altri strumenti di automazione, anche per i professionisti DevOps più esperti.      

L'architettura basata su agente, di cui si avvale Chef, è un modello di infrastruttura e automazione che prevede di eseguire componenti software specifici, chiamati agenti, sull'ambiente da gestire. È necessario che l'agente e tutte le sue dipendenze siano installati su ogni nodo target; questo comporta controlli e regole di sicurezza aggiuntivi. Un simile modello si rivela inefficace in tutti i contesti dove gli oggetti da automatizzare non permettono l'installazione e l'esecuzione di un agente. Richiede inoltre la manutenzione degli agenti.L'

architettura agentless, quella utilizzata da Ansible, è un modello per l'automazione e la gestione di dispositivi IT che non richiede di installare alcun software agente negli ambienti gestiti. Il software di controllo si connette alle macchine remote tramite connessioni SSH ed è immediatamente in grado di gestirle senza dover attendere un lungo processo di configurazione. Questa architettura elimina la necessità di mantenere un sistema per il deployment una volta completata la configurazione.La

gestione della configurazione è un processo che consente di mantenere sistemi, server e software coerenti e corrispondenti alle condizioni previste, per assicurare che il sistema funzioni come previsto, nonostante le eventuali modifiche apportate nel tempo. Se automatizzato, il sistema consente di ridurre costi, complessità e il rischio di errori manuali.  

DevOps e DevSecOps indicano rispettivamente "sviluppo e operazioni" e "sviluppo, sicurezza e operazioni". Sono approcci alla cultura, all'automazione e alla progettazione delle piattaforme che integrano la sicurezza come responsabilità condivisa lungo l'intero ciclo di vita IT. DevOps e DevSecOps sono sostanzialmente la stessa cosa, perché la sicurezza è da sempre parte dell'approccio DevOps. L'utilizzo diffuso del termine DevSecOps rende ancora più esplicita questa inclusione.

YAML è l'acronimo di Yet Another Markup Language (o di YAML Ain’t Markup Language), un linguaggio di serializzazione dei dati spesso utilizzato per la scrittura dei file di configurazione. Progettato per essere leggibile in chiaro e facile da comprendere, può essere utilizzato insieme ad altri linguaggi di programmazione. YAML è un sovrainsieme di JSON (JavaScript Object Notation).

Quando si sceglie una soluzione di automazione occorre valutare non solo le funzionalità immediatamente disponibili, ma anche le prospettive di sviluppo della piattaforma a lungo termine. Sebbene Chef e Ansible siano altamente scalabili e compatibili con le macchine di controllo eseguite su Linux/Unix e con i nodi eseguibili su Windows, Ansible si distingue per la dinamica community open source e per il supporto di Red Hat. 

Al giorno d'oggi è normale utilizzare più soluzioni di automazione. Ansible si connette a un ampio ecosistema di integrazioni supportate e si può utilizzare insieme a molti altri strumenti di gestione dell'automazione e della configurazione, come agente di orchestrazione degli strumenti di automazione. Inoltre, è possibile utilizzare Ansible per automatizzare i sistemi su hyperscaler del cloud pubblico come Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform e molti altri.

Rispetto a Chef, Ansible è la scelta ideale per gli utenti che danno priorità alla semplicità, alla facilità di utilizzo e che cercano una soluzione di automazione agentless. Largamente adottato in diversi ambiti IT, come l'automazione delle reti e dell'infrastruttura, dispone di un'ampia community di contributori e partnership ed è molto apprezzato perché facile da integrare con altre soluzioni. 

Red Hat Ansible Automation Platform, basata sull'open source, è un prodotto in sottoscrizione potenziato e testato che offre alle organizzazioni un supporto completo per il ciclo di vita. Il suo progetto upstream, Ansible, è il risultato dell'esperienza e della competenza di migliaia di collaboratori in tutto il mondo.

Ansible Automation Platform include numerosi componenti upstream, oltre 140 raccolte Red Hat Ansible Certified Content Collections fornite da più di 60 partner e strumenti as-a-Service per aumentare il ritorno sull'investimento (ROI), che semplificano l'installazione, la configurazione e il supporto dell'automazione negli ambienti aziendali. Offre un'esperienza di automazione end to end per i team interfunzionali, oltre a garantire un'esperienza plug and play per gli sviluppatori, gli ingegneri e i team operativi che si occupano di automazione.

Le funzionalità di Red Hat Ansible Automation Platform, come Red Hat Insights e automation analytics, forniscono informazioni accessibili sulle prestazioni dell'automazione, permettendoti di misurarne gli effetti e di monitorarne o risolverne i problemi in modo più preciso ed efficace. Automation Mesh permette di estendere la capacità di controllo ed esecuzione in modo indipendente, portando l'automazione in prossimità degli endpoint che la richiedono, con tempi di fermo minimi o nulli. Ciò permette di ottenere un'esperienza di automazione coerente ovunque, nel datacenter, nel cloud e all'edge della rete.

Tra le diverse opzioni agentless per l'automazione dell'IT, Ansible si distingue per la sua semplicità e flessibilità oltre alla sua ampia community di utenti.

Continua a leggere

Articolo

I concetti base di Ansible

Ansible consente di automatizzare i processi IT, come il provisioning e la gestione della configurazione. Questo articolo fornisce un'introduzione ai concetti base di Ansible.

Articolo

Cos'è la gestione dei processi aziendali?

La gestione dei processi di business (BPM, business process management) consiste nella creazione di modelli di business, nell'analisi e nell'ottimizzazione dei processi aziendali end to end per realizzare i tuoi obiettivi aziendali strategici.

Articolo

Perché scegliere Red Hat per l'automazione

Red Hat Ansible Automation Platform include tutti gli strumenti necessari per condividere le competenze di automazione tra i team e adottare l'automazione a livello aziendale.

Scopri di più sull'automazione

Prodotti

Collabora con il nostro team di consulenti strategici in grado di analizzare l'azienda nel suo insieme e valutare le sfide da affrontare, per aiutarti a superarle con soluzioni complete e convenienti.

Una piattaforma per implementare l'automazione in azienda, in qualsiasi fase del tuo percorso di trasformazione

Risorse

Ebook

L'azienda automatizzata connette persone e processi

Ebook

Automazione dei flussi di lavoro dell'infrastruttura

Continua a leggere

Formazione

Corso di formazione gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Corso di formazione gratuito

Red Hat Ansible Automation for SAP