Accedi / Registrati Account

Automazione

I concetti base di Ansible

Ansible è un motore di automazione IT open source che automatizza l'installazione, la gestione della configurazione, il deployment delle applicazioni, l'orchestrazione e molti altri processi IT.

Puoi usare l'automazione Ansible per installare il software, automatizzare le attività quotidiane, implementare l'infrastruttura, migliorare i livelli di sicurezza e conformità, applicare patch ai sistemi e condividere l'automazione in tutta l'azienda.

 

Principio di funzionamento di Ansible

Ansible collega tutti i tuoi nodi ed esegue il push di piccoli programmi, denominati moduli, a ciascuno di essi. I moduli consentono di eseguire le attività di automazione in Ansible.

Tali programmi vengono scritti in modo da fornire un modello per le risorse del sistema, nello stato desiderato. Dopo il push Ansible esegue tali moduli e, al termine, li rimuove.

Senza questi moduli, per eseguire le attività desiderate dovresti utilizzare comandi ad-hoc e creare script appositi. 

In questa guida viene spiegato come installare Ansible

Ansible è una soluzione agentless, pertanto non richiede l'installazione di alcun software nei nodi da gestire,

ma legge dall'inventario le informazioni relative a tali sistemi. Ansible dispone di un file di inventario predefinito, ma è possibile crearne uno personalizzato e specificare i server da gestire. 

Per connettersi ai server ed eseguire le varie attività, Ansible utilizza il protocollo SSH. Per impostazione predefinita, Ansible utilizza 

chiavi SSH con ssh-agent e si connette ai sistemi remoti utilizzando il tuo nome utente attuale, senza richiedere credenziali di root. Puoi effettuare l'accesso con qualunque account e assegnare privilegi su o sudo a qualsiasi utente.

Scopri come stabilire una comunicazione sicura con SSH

Dopo aver stabilito la connessione, Ansible trasferisce ai sistemi remoti i moduli che devono essere eseguiti dal tuo comando o playbook.

Poiché utilizza modelli YAML comprensibili agli esseri umani, puoi programmare l'esecuzione automatica delle attività ripetitive anche senza conoscere alcun linguaggio di programmazione avanzato.

Per automatizzare le attività puoi utilizzare i moduli predefiniti di Ansible o crearne di nuovi. I moduli Ansible possono essere scritti in qualunque linguaggio che restituisca file JSON, come Ruby, Python o bash. I moduli di automazione Windows sono scritti in Powershell. 

 

Uso di Ansible per l'esecuzione di comandi ad-hoc

Puoi usare Ansible per eseguire comandi ad-hoc. A tale scopo, è necessario eseguire un comando o chiamare un modulo direttamente dalla riga di comando, senza utilizzare alcun playbook. 

Questa soluzione si presta all'esecuzione di semplici attività occasionali, ma per quelle più complesse è necessario un Ansible Playbook.

Ansible Playbook

Gli Ansible Playbook consentono di orchestrare i processi IT. Un playbook è un file YAML contenente 1 o più play, che permette di definire lo stato desiderato di un sistema, mentre un modulo Ansible è uno script standalone utilizzabile all'interno di un Ansible Playbook. 

Uso di YAML con Ansible

I play sono costituiti da una serie di attività ordinate, da eseguire sugli host selezionati in un file di inventario Ansible. 

Le attività sono gli elementi costitutivi del play che chiamano i moduli Ansible. In un play le attività vengono eseguite nell'ordine in cui sono scritte.  

Durante l'esecuzione, Ansible è in grado di tenere traccia dello stato del sistema. Se, dopo aver effettuato la scansione di un sistema, Ansible rileva che la descrizione di un playbook non corrisponde allo stato effettivo del sistema, apporta tutte le modifiche necessarie per allineare il sistema al playbook. 

Ansible offre una "modalità di verifica" che permette di convalidare playbook e comandi ad-hoc prima di apportare modifiche allo stato di un sistema. Questa modalità mostra le attività che dovrebbero essere eseguite da Ansible, senza apportare alcuna modifica effettiva. 

Ansible si avvale di handler per eseguire un'attività specifica solo dopo che è stata apportata una modifica al sistema. Tali handler vengono attivati dall'attività e vengono eseguiti una volta sola, al termine di tutti gli altri play contenuti nel playbook. 

In Ansible è possibile utilizzare le variabili per alterare la modalità di esecuzione di un playbook. Le variabili consentono di tenere conto delle differenze fra i vari sistemi, come le versioni dei pacchetti o i percorsi dei file. Con Ansible è possibile creare playbook eseguibili su sistemi diversi. 

Le variabili Ansible devono essere definite in funzione delle operazioni effettivamente eseguite dal playbook. 

Le variabili vengono valutate in base alla precedenza, che definisce l'ordine in cui le variabili si sostituiscono a vicenda. Questo aspetto è molto importante quando si decide di utilizzare le variabili in un playbook.

Per utilizzare Ansible è necessario comprendere anche il concetto di raccolta. Una raccolta è un formato di distribuzione per i contenuti Ansible, che possono includere playbook, ruoli, moduli e plug-in.

Un ruolo Ansible è un particolare tipo di playbook completamente autocontenuto e trasportabile insieme ad attività, variabili, modelli di configurazione e altri file di supporto necessari per completare un'orchestrazione complessa. 

All'interno di una raccolta possono essere presenti più ruoli che semplificano la condivisione dei contenuti tramite Automation Hub e Ansible Galaxy

 

Gestione della configurazione con Ansible

La gestione della configurazione è il processo utilizzato per mantenere sistemi, server e software in un determinato stato coerente, al fine di assicurare che il sistema funzioni come previsto, nonostante le eventuali modifiche apportate nel tempo. 

Solitamente, a tale scopo si utilizza la gestione manuale o uno script personalizzato creato dall'amministratore del sistema. 

Cinque metodi per potenziare i nuovi sistemi con Ansible

Red Hat® Ansible® Automation Platform può essere utilizzato come strumento per la gestione della configurazione, al fine di memorizzare lo stato attuale dei sistemi per semplificarne la manutenzione. 

Gli strumenti di gestione della configurazione accelerano le attività di modifica e deployment, evitano potenziali errori umani e al tempo stesso garantiscono una gestione dei sistemi scalabile e prevedibile.

Permettono inoltre di tenere traccia dello stato delle risorse, ad esempio per evitare di ripetere l'installazione di uno stesso pacchetto. 

Automatizzando la gestione della configurazione con Ansible è possibile migliorare il ripristino del sistema dopo un evento critico. Se un server si guasta, per qualsiasi motivo, è possibile implementarne uno nuovo e sfruttare la registrazione di modifiche e aggiornamenti per identificare rapidamente l'origine del problema. 

 

Eseguire il deployment con Ansible

Oggi le infrastrutture sono spesso software defined e, grazie alla virtualizzazione e ai container, il processo di implementazione è stato accelerato, riducendo la frequenza delle attività di deployment e gestione dell'hardware.

Quando il deployment dei singoli componenti viene gestito manualmente, è complicato registrare le modifiche, controllare le versioni ed evitare errori o incongruenze.

Automatizzando il deployment di qualsiasi infrastruttura puoi compiere il primo passo verso l'automazione del ciclo di vita operativo delle applicazioni. 

Per implementare l'infrastruttura sottostante del tuo ambiente, ovvero gli host virtualizzati e gli hypervisor, i dispositivi di rete e i server bare metal, puoi utilizzare Ansible. Puoi utilizzare questo motore anche per installare servizi, aggiungere host di elaborazione e implementare risorse, servizi e applicazioni all'interno del cloud.

Ti basta creare un Ansible Playbook per descrivere lo stato desiderato dell'infrastruttura e utilizzare Ansible per implementarlo. La codifica dell'infrastruttura tramite un playbook ti assicura che verrà implementato sempre lo stesso ambiente. 

 

Automazione del deployment

L'automazione del deployment consente di trasferire il software dall'ambiente di test a quello di produzione e viceversa tramite processi automatizzati. Questo consente di ottenere deployment ripetibili e affidabili per l'intero ciclo di distribuzione del software.

L'automazione del deployment è un aspetto importante per l'adozione delle metodologie DevOps e la gestione della pipeline CI/CD.

Tuttavia, se i team di sviluppo e quelli operativi distribuiscono le applicazioni o configurano gli ambienti con modalità diverse, l'automazione del deployment non può funzionare. 

L'ambiente può essere automatizzato solo se è coerente. È importante applicare la stessa procedura di deployment a tutti gli ambienti, incluso quello di produzione. 

Solitamente, la pipeline di deployment è suddivisa in tre fasi (ma potrebbero essere di più), ovvero creazione, test e deployment. Questa pipeline semplifica l'automazione del deployment e garantisce che il codice passi rapidamente dal commit al deployment.

Ansible consente di eseguire il deployment di applicazioni multilivello in modo affidabile e coerente, da un framework comune. Puoi configurare i servizi necessari e utilizzare i playbook per eseguire il push di componenti applicativi.

 

Orchestrazione con Ansible

Normalmente l'automazione riguarda una singola attività. Nel caso dell'orchestrazione, invece, viene automatizzato un processo o un flusso di lavoro che implica l'esecuzione di più fasi in sistemi diversi. 

È possibile utilizzare l'orchestrazione cloud per il eseguire il deployment o la distribuzione dei server, assegnare capacità di storage, creare macchine virtuali, gestire le reti e svolgere altre attività. Esistono numerosi strumenti che consentono di semplificare l'orchestrazione cloud, e Ansible è uno di quelli.

Per orchestrare la configurazione e la gestione dei server, così come i deployment delle applicazioni, è possibile utilizzare uno strumento come Ansible. 

Scopri come parlare di orchestrazione in un linguaggio comprensibile a tutti

Quando si esegue il deployment delle applicazioni, si implementano servizi front end e back end, database, monitoraggio, reti e storage, ciascuno dei quali svolge il proprio ruolo specifico e richiede determinate procedure di configurazione e deployment. L'orchestrazione assicura che ogni singola fase venga eseguita esattamente come previsto.

Ansible gestisce l'orchestrazione eseguendo le attività del playbook nell'ordine in cui sono scritte, garantendo che i processi di deployment delle applicazioni avverranno nella sequenza corretta. 

 

Automazione della rete

Per automatizzare le operazioni di rete si utilizza la logica programmabile per gestire le risorse e i servizi di rete. L'automazione della rete consente ai team operativi di rete (NetOps) di configurare, ridimensionare, proteggere e integrare l'infrastruttura di rete e i servizi applicativi più rapidamente, rispetto alla modalità manuale.

Nonostante l'evoluzione delle tecnologie nel tempo, la gestione delle reti è rimasta praticamente invariata per decenni. In genere, la creazione, la gestione e la manutenzione delle reti vengono eseguite manualmente. 

Poiché troppo lenti e suscettibili di errori, gli approcci manuali tradizionali alla configurazione della rete e agli aggiornamenti faticano tuttavia a supportare con efficacia le rapide variazioni dei requisiti dei carichi di lavoro. 

L'automazione delle risorse e della gestione dei servizi di rete consente ai team operativi di aumentare i propri livelli di agilità e flessibilità, supportando efficacemente le esigenze di un'azienda moderna.

 

Automazione della sicurezza 

Per automatizzare la sicurezza si utilizzano le tecnologie di automazione allo scopo di eseguire le attività necessarie limitando l'intervento umano, al fine di integrare processi, applicazioni e infrastrutture di sicurezza.

L'automazione consente di semplificare le operazioni quotidiane, integrando la sicurezza fin dall'inizio nei processi, nelle applicazioni e nell'infrastruttura. Automatizzando completamente la sicurezza si può arrivare a ridurre del 95% il costo medio di una violazione.

Applicando l'automazione ai processi di sicurezza è possibile identificare, convalidare ed eseguire l'escalation delle minacce molto più rapidamente, senza richiedere alcun intervento manuale. 

Se si verifica un incidente di sicurezza, i team responsabili possono utilizzare Ansible per applicare le correzioni contemporaneamente a tutti i sistemi interessati, accelerando la risposta.

Tre modi per iniziare ad automatizzare la sicurezza IT

Con Ansible, i team di sicurezza possono configurare una sequenza di processi che condividono inventari, playbook o autorizzazioni, per automatizzare completamente indagini o correzioni.

Red Hat Ansible Automation Platform si integra con i servizi di aggregazione dei log esterni di altri fornitori, che aiutano i team di sicurezza a identificare le tendenze, analizzare gli eventi dell'infrastruttura, monitorare le anomalie e stabilire una correlazione fra eventi diversi.

 

Corsi di formazione su Ansible

Red Hat Enterprise Linux Automation with Ansible 

In questo corso viene spiegato come automatizzare le attività di amministrazione dei sistemi Linux® con Ansible Automation Platform. I partecipanti apprenderanno le tecniche da utilizzare per automatizzare l'implementazione, la configurazione, il deployment delle applicazioni e l'orchestrazione con Ansible Automation Platform.

 

Ansible Essentials: Simplicity in Automation Technical Overview

Una serie di video online on-demand che fornisce un'introduzione alle attività di gestione della configurazione e automazione con Ansible, per l'implementazione, il deployment e la gestione dell'infrastruttura di elaborazione negli ambienti cloud, fisici e virtuali.

 

Ansible 101: An introduction to automating everything

In questo webinar vengono illustrati i vantaggi che si possono ottenere utilizzando Ansible per automatizzare le attività in una vasta gamma di dispositivi Red Hat Enterprise Linux, Windows, cloud e di rete. Viene spiegato come automatizzare le attività amministrative e come utilizzare le funzionalità avanzate di Red Hat Ansible Automation Platform per eseguire attività più complesse. 

 

Case study: creazione di una cultura di automazione dell'IT all'interno di Microsoft

Microsoft si sta impegnando a diffondere una cultura di successo e collaborazione fra i team, supportata dalla tecnologia di automazione.

Utilizzando Red Hat Ansible Automation Platform e lavorando a stretto contatto con Red Hat Consulting, Microsoft ha creato un ambiente standardizzato e centralizzato per l'automazione della rete, al fine di ridurre la complessità delle varie attività e di verificare e riutilizzare il codice di produzione. 

Grazie alla cultura DevOps, ora tutti i team dell'azienda possono concentrarsi sulla condivisione delle conoscenze, sul miglioramento delle competenze e sulla creazione di soluzioni tecnologiche innovative.

Leggi il caso cliente completo per scoprire come Microsoft ha raggiunto i suoi obiettivi.

 

Perché scegliere Red Hat per l'automazione

Red Hat collabora con la community open source a iniziative che riguardano le tecnologie di automazione. I nostri ingegneri contribuiscono al miglioramento di funzionalità, affidabilità e sicurezza per garantire alle aziende processi e tecnologie stabili e sicuri. 

Red Hat Ansible Automation Platform include tutti gli strumenti necessari per implementare l'automazione nell'intera azienda, inclusi playbook e analisi. Consente agli utenti di centralizzare e controllare l'infrastruttura IT tramite dashboard grafici, controllo degli accessi in base al ruolo e molto altro ancora, per ridurre la complessità operativa.

Red Hat Ansible Automation Platform include inoltre Automation Analytics, che consente ai membri dei team operativi di analizzare modalità di utilizzo, tempi di attività e schemi di esecuzione tra i diversi team che eseguono Ansible Automation Platform.

Ansible Automation Hub consente di scoprire e comprendere i contenuti Ansible supportati da Red Hat e i contenuti dei partner certificati Ansible.

Red Hat Ansible Automation Platform è stata nominata "leader" da Forrester Research nel report Forrester Wave™ "Infrastructure Automation Platforms" per il terzo trimestre 2020.

Oltre a creare automazione, le aziende devono anche avere la possibilità di condividere e riutilizzare l'automazione tra progetti e team diversi, con il giusto livello di governance e controllo. 

Con la soluzione di automazione appropriata, puoi accelerare il deployment di nuovi servizi e applicazioni, gestire l'infrastruttura IT in modo più efficiente e aumentare la produttività delle attività di sviluppo applicativo.

La piattaforma indispensabile per l'automazione

Red Hat Ansible Automation Platform

Una piattaforma agentless espressamente concepita per semplificare l'automazione del tuo ambiente IT su vasta scala. Centralizza e controlla la tua infrastruttura IT con un dashboard visivo, controllo degli accessi in base al ruolo e molto altro ancora.

Ansible si presta a molti altri utilizzi