Usare strumenti di automazione dell'infrastruttura con macchine virtuali in Azure

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi

Per creare e gestire macchine virtuali (VM) in modo coerente e scalabile, è in genere consigliabile una certa parte di automazione. Sono disponibili numerosi strumenti e soluzioni che consentono di automatizzare l'intero ciclo di vita di distribuzione e gestione dell'infrastruttura di Azure. Questo articolo presenta alcuni degli strumenti di automazione dell'infrastruttura che è possibile usare in Azure. Questi strumenti sono in genere associati a uno degli approcci seguenti:

Terraform

Terraform è uno strumento di automazione che permette di definire e creare un'intera infrastruttura di Azure con un unico linguaggio in formato basato su modelli, ovvero HCL (HashiCorp Configuration Language). Con Terraform è possibile definire i modelli per automatizzare il processo di creazione di risorse di rete, archiviazione e macchina virtuale per una soluzione di applicazione specifica. È possibile usare i modelli Terraform esistenti per altre piattaforme con Azure per garantire la coerenza e semplificare la distribuzione dell'infrastruttura senza che sia necessaria la conversione in modelli di Azure Resource Manager.

Scopri come:

Automazione di Azure

Automazione di Azure usa runbook per elaborare un set di attività nelle macchine virtuali come destinazione. Automazione di Azure viene usato per gestire le macchine virtuali esistenti anziché per creare un'infrastruttura. Automazione di Azure possono essere eseguiti in macchine virtuali Linux e Windows e in macchine virtuali o fisiche locali con un ruolo di lavoro ibrido per runbook. I runbook possono essere archiviati in un repository di controllo del codice sorgente come GitHub. Questi runbook possono quindi essere eseguiti manualmente o in base a una pianificazione definita.

Automazione di Azure fornisce anche un servizio DSC (Desired State Configuration) che permette di creare le definizioni per la configurazione di un set specifico di macchine virtuali. DSC assicura quindi che la configurazione necessaria venga applicata e che la macchina virtuale resti coerente. Azure Automation DSC viene eseguito su computer Windows e Linux.

Scopri come:

Servizi di Azure DevOps

Azure DevOps Services è una famiglia di strumenti che permette di condividere e monitorare il codice, usare compilazioni automatiche e creare una pipeline di sviluppo e integrazione continua completa (CI/CD). Azure DevOps Services si integra con Visual Studio e altri editor di testo per semplificare l'utilizzo. Azure DevOps Services può anche creare e configurare macchine virtuali di Azure e quindi distribuirvi il codice.

Altre informazioni su:

Modello di Azure Resource Manager

Azure Resource Manager è il servizio di distribuzione e gestione di Azure. Fornisce un livello di gestione che consente di creare, aggiornate ed eliminare risorse nella sottoscrizione di Azure. È possibile usare funzionalità di gestione, come il controllo di accesso, i blocchi e i tag, per proteggere e organizzare le risorse dopo la distribuzione.

Scopri come:

Bicep

Bicep è un linguaggio specifico di dominio (DSL) che usa la sintassi dichiarativa per distribuire le risorse di Azure. L'infrastruttura da distribuire in Azure viene definita in un file Bicep che viene quindi usato in tutto il ciclo di vita di sviluppo per distribuire ripetutamente l'infrastruttura. Le risorse vengono distribuite in modo coerente.

Guida di avvio rapido per iniziare.

cloud-init

Cloud-init è un approccio diffuso per personalizzare una macchina virtuale Linux al primo avvio. Cloud-init consente di installare pacchetti e scrivere file o configurare utenti e impostazioni di sicurezza. Poiché cloud-init viene chiamato durante il processo di avvio iniziale, non sono previsti passaggi aggiuntivi o agenti necessari per applicare la configurazione. Per altre informazioni su come formattare correttamente i file #cloud-config, vedere il sito della documentazione di cloud-init. I file #cloud-config sono file di testo codificati in formato base64.

Cloud-init funziona anche fra distribuzioni. Ad esempio, non si usa apt-get install o yum install per installare un pacchetto. In alternativa, è possibile definire un elenco di pacchetti da installare. Cloud-init userà automaticamente lo strumento di gestione del pacchetto nativo per la distribuzione selezionata.

Microsoft sta collaborando attivamente con i partner di distribuzione Linux approvati per offrire immagini abilitate per cloud-init in Azure Marketplace. Queste immagini rendono le distribuzioni e le configurazioni cloud-init perfettamente funzionanti con macchine virtuali e set di scalabilità di macchine virtuali. Altre informazioni dettagliate su cloud-init in Azure:

PowerShell DSC

PowerShell DSC (Desired State Configuration) è una piattaforma di gestione che permette di definire la configurazione dei computer di destinazione. È possibile usare DSC anche in Linux tramite il server Open Management Infrastructure (OMI).

Le configurazioni DSC definiscono che cosa installare nel computer e come configurare l'host. Un motore di Gestione configurazione locale viene eseguito in ogni nodo di destinazione che elabora le azioni necessarie in base alle configurazioni di cui è stato eseguito il push. Un server di pull è un servizio Web che viene eseguito in un host centrale per archiviare le configurazioni DSC e le risorse associate. Il server di pull comunica con il motore di Gestione configurazione locale in ogni host di destinazione per fornire le configurazioni necessarie e i report sulla conformità.

Scopri come:

Estensione di script personalizzata di Azure

L'estensione di script personalizzata per Linux o Windows scarica ed esegue script nelle macchine virtuali di Azure. È possibile usare l'estensione quando si crea una macchina virtuale o in qualsiasi momento dopo l'uso della macchina virtuale.

Gli script possono essere scaricati da una risorsa di archiviazione di Azure o da qualsiasi posizione pubblica, ad esempio un repository GitHub. Con l'estensione di script personalizzata è possibile scrivere script in qualsiasi linguaggio in esecuzione nella macchina virtuale di origine. Questi script possono essere usati per installare applicazioni o configurare la macchina virtuale in base alle esigenze. Per proteggere le credenziali, le informazioni riservate come le password possono essere archiviate in una configurazione protetta. Queste credenziali vengono decrittografate solo all'interno della macchina virtuale.

Scopri come:

Ansible

Ansible è un motore di automazione per la gestione della configurazione, la creazione di macchine virtuali e la distribuzione di applicazioni. Ansible usa un modello senza agente, in genere con chiavi SSH, per autenticare e gestire i computer di destinazione. Le attività di configurazione vengono definite nei playbook, con diversi moduli Ansible disponibili per eseguire attività specifiche. Per altre informazioni, vedere How Ansible works (Funzionamento di Ansible).

Scopri come:

Chef

Chef è una piattaforma di automazione che permette di definire le modalità di configurazione, distribuzione e gestione dell'infrastruttura. Alcuni componenti includono Chef Habitat per l'automazione del ciclo di vita dell'applicazione anziché l'infrastruttura e Chef InSpec che consente di automatizzare la conformità ai requisiti di sicurezza e criteri. I client Chef vengono installati nei computer di destinazione, con uno o più server Chef centrali che archiviano e gestiscono le configurazioni. Per altre informazioni, vedere An Overview of Chef (Panoramica di Chef).

Scopri come:

Puppet

Puppet è una piattaforma di automazione di livello aziendale che gestisce il processo di distribuzione delle applicazioni. Gli agenti vengono installati nei computer di destinazione per consentire a Puppet Master di eseguire i manifesti che definiscono la configurazione desiderata dell'infrastruttura e delle macchine virtuali di Azure. Puppet può integrarsi con altre soluzioni come Jenkins e GitHub per offrire un flusso di lavoro DevOps migliorato. Per altre informazioni, vedere How Puppet works (Funzionamento di Puppet).

Scopri come:

Packer

Packer automatizza il processo di compilazione quando si crea un'immagine di macchina virtuale personalizzata in Azure. È possibile usare Packer per definire il sistema operativo ed eseguire script di post-configurazione per personalizzare la macchina virtuale per esigenze specifiche. Una volta configurata, la macchina virtuale viene acquisita come immagine del disco gestito. Packer automatizza il processo per creare risorse di rete, archiviazione e macchina virtuale di origine, eseguire script di configurazione e quindi creare l'immagine di macchina virtuale.

Scopri come:

Jenkins

Jenkins è un server di integrazione continua che permette di distribuire e testare le applicazioni e creare pipeline automatiche per il recapito del codice. Sono disponibili centinaia di plug-in per l'estensione della piattaforma Jenkins principale ed è anche possibile l'integrazione con molti altri prodotti e soluzioni tramite webhook. È possibile installare manualmente Jenkins in una macchina virtuale di Azure, eseguire Jenkins da un contenitore Docker oppure usare un'immagine di Azure Marketplace predefinita.

Scopri come:

Passaggi successivi

Sono disponibili molte opzioni diverse per usare gli strumenti di automazione dell'infrastruttura in Azure. È possibile usare la soluzione più adatta alle esigenze e all'ambiente con la massima libertà. Per iniziare a usare e provare alcuni degli strumenti integrati in Azure, vedere gli argomenti sull'automazione della personalizzazione di una macchina virtuale Linux o Windows.