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:
Automatizzare la configurazione delle macchine virtuali
- Gli strumenti includono Ansible, Chef, Puppet, Bicep e il modello di Azure Resource Manager.
- Gli strumenti specifici per la personalizzazione delle macchine virtuali includono cloud-init per le macchine virtuali Linux, PowerShell DSC (Desired State Configuration)e l'estensione di script personalizzata di Azure per tutte le macchine virtuali di Azure.
Automatizzare la gestione dell'infrastruttura
- Tra gli strumenti sono inclusi Packer, per automatizzare le compilazioni di immagini di macchina virtuale personalizzate, e Terraform, per automatizzare il processo di compilazione dell'infrastruttura.
- Automazione di Azure può eseguire azioni nell'infrastruttura di Azure e in quella locale.
Automatizzare la distribuzione di applicazioni
- Gli esempi includono Azure DevOps Services e Jenkins.
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:
- Creare un runbook di PowerShell.
- Usare un ruolo di lavoro ibrido per runbook per gestire risorse locali.
- Usare Azure Automation DSC.
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:
- Distribuire macchine virtuali spot usando un modello di Resource Manager.
- Creare una macchina virtuale Windows da un modello di Resource Manager.
- Scaricare il modello per una macchina virtuale.
- Creare un modello di Image Builder di Azure.
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:
- Supporto di cloud-init per macchine virtuali Linux in Azure
- Provare un'esercitazione sulla configurazione automatica della macchina virtuale tramite cloud init.
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:
- Creare una configurazione DSC di base.
- Configurazione di un server di pull DSC.
- Usare DSC per Linux.
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:
- Creare una VM Linux con l'interfaccia della riga di comando di Azure e usare l'estensione di script personalizzata.
- Creare una VM Windows con Azure PowerShell e usare l'estensione di script personalizzata.
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:
- Installare e configurare Ansible su Linux per l'uso in Azure.
- Creare una macchina virtuale Linux.
- Gestire una macchina virtuale Linux.
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:
- Deploy Chef Automate from the Azure Marketplace (Distribuire Chef Automate da Azure Marketplace).
- Installare Chef in Windows e creare macchine virtuali di Azure.
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:
- Come usare Packer per creare immagini di macchine virtuali di Linux in Azure.
- Come usare Packer per creare immagini di macchine virtuali di Windows in Azure.
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.