Table of Contents
Azure Automation Runbooks è una pietra angolare delle moderne operazioni cloud, consentendo ai team IT di automatizzare le attività ripetitive e di consumo di tempo con precisione e affidabilità. Spostando la gestione di routine lontano dall'intervento manuale, le organizzazioni possono ridurre la sovraccarica operativa, ridurre l'errore umano e mantenere un ambiente cloud coerente e scalabile. Questo articolo fornisce una guida completa a Azure Automation Runbooks, coprendo la loro architettura, casi di uso comune, implementando le migliori pratiche, considerazioni di sicurezza e di sicurezza.
Comprendere i Runbook di Azure Automation
Un Runbook Azure Automation è essenzialmente uno script, scritto in PowerShell, Python o composto graficamente, che viene eseguito all'interno del servizio Azure Automation. A differenza degli script ad-hoc eseguiti su una macchina locale o su una singola VM, Runbooks beneficiano di un ambiente di esecuzione completamente gestito che include la gestione del modulo incorporato, la gestione delle credenziali, la pianificazione e l'integrazione con altri servizi Azure.
Tipologie di Runbook
Azure Automation supporta tre tipi di Runbook distinti, ciascuno adatto a diversi livelli di abilità e casi di utilizzo:
- Graphical Runbooks[] – Creato utilizzando un'interfaccia drag-and-drop nel portale Azure. Questi sono ideali per gli amministratori che preferiscono flussi di lavoro visivi senza codice di scrittura.
- PowerShell Runbooks[[] – Scrittori basati su testo scritti in Windows PowerShell o PowerShell Core. Questo è il tipo più comune, offrendo pieno accesso ai cmdlet Azure, ai moduli personalizzati e al framework .NET.
- Python Runbooks[[] – Per le squadre che preferiscono Python, Azure Automation supporta gli script Python 2 e Python 3, questo è utile quando si integra con strumenti open source o quando l'esperienza di squadra è in Python.
Ogni tipo Runbook può essere modificato direttamente nel portale Azure o importato da un sistema di controllo sorgente come GitHub o Azure Repos. La scelta dipende dalla set di abilità del vostro team e dalla complessità della logica di automazione.
Componenti principali di Azure Automation
Oltre ai Runbook, la piattaforma Azure Automation include diversi componenti complementari che rendono l'automazione affidabile e sicura:
- Automation Account[[] – Un contenitore di gestione che tiene i vostri Runbook, moduli, credenziali, orari e variabili.
- Risorse di raccolta[[] – Credenziali (conservati in modo sicuro), oggetti di connessione, certificati e variabili che possono essere richiamati da più Runbooks senza dati sensibili di codifica.
- Schedules[ – I trigger basati sul tempo che avviano Runbooks a intervalli specifici (daily, hourly, mensili) o ad una data di un'interruzione.
- Webhooks[ – Permettete ai sistemi esterni (come un canale CI/CD o uno strumento di monitoraggio) di avviare un Runbook tramite una richiesta HTTP POST.
- Modules[] – Pacchetti di cmdlet PowerShell o moduli Python che estendono le funzionalità di Runbook. Azure Automation include moduli Azure integrati, ma è possibile importare moduli personalizzati o di terze parti.
- Hybrid Runbook Worker[[] – Estende l'esecuzione di Runbook su macchine on-premise o altri ambienti cloud, consentendo l'automazione di risorse che non sono accessibili dalla sandbox Azure.
Scenari comuni di automazione di routine
Azure Automation Runbooks brillano quando applicato a compiti prevedibili e ripetitivi. Di seguito sono scenari dettagliati che molte organizzazioni implementano come parte delle loro operazioni cloud quotidiane.
Gestione automatica delle macchine virtuali
Uno dei casi di utilizzo più popolari è l'avvio/arresto VM programmato per risparmiare i costi durante le ore non aziendali. Ad esempio, un Runbook può fermare tutte le VM in un gruppo di risorse alle ore 7:00 e avviarle alle ore 6:00 utilizzando una combinazione di e ] cmdlets.
Backup e Recovery Automation
Per esempio, è possibile creare un Runbook che attiva un backup di un database Azure SQL, quindi copia il file di backup di un account di storage secondario in un'altra regione per la geo-redundancy. Allo stesso modo, Runbooks può automatizzare il ripristino di una VM da una volta Recovery Services, verificare il ripristino riuscito, e poi inviare una notifica tramite Microsoft Teams o e-mail.
Pulizia delle risorse e ottimizzazione dei costi
Un Runbook può eseguire la scansione di tutti gli abbonamenti per dischi orfani, indirizzi IP pubblici non collegati, bilanciatori di carico inattivo, vecchie istantanee e cancellarli automaticamente. Per evitare la rimozione accidentale, includere la logica di approvazione: il Runbook può prima generare un rapporto, inviarlo ad un amministratore, e procedere solo con cancellazione dopo aver ricevuto una conferma tramite un Azure Logic App o webhook.
Risposta automatica dell'incidente
Se la CPU di una VM supera il 90% per cinque minuti, un avviso può attivare un Runbook che scala la VM fino a un più grande SKU (soggetto a vincoli di bilancio). Un altro modello comune è quello di riavviare un servizio su una VM quando diventa non rispondente, quindi registrare l'evento a Log Analytics per l'analisi post-mortem.
Vantaggi di Adottare Runbooks per le attività di routine
La proposta di valore di Azure Automation Runbooks si estende ben oltre i semplici risparmi di tempo, ecco i vantaggi chiave che giustificano l'investimento nell'automazione:
- Errore umano redotto[] – I processi manuali sono inclini a digitare, saltare i passaggi o configurazioni inconsistenti.
- Accelerated Operations[[] – I compiti che una volta hanno preso un ingegnere 10-15 minuti possono essere completati in pochi secondi.
- Auditability and Compliance[[] – Ogni esecuzione Runbook è registrata nel registro delle attività Azure e può essere memorizzata in Log Analytics. Questo fornisce una chiara catena di custodia per i requisiti normativi, come la verifica che i backup avvengano notturni o che le VM vengano arrestate dopo ore.
- Cost Control[] – Automatizzazione dei programmi start/stop, cancellazione delle risorse orfane e dirittizzazione direttamente influisce sulla linea di fondo, spesso pagando per il conto di automazione molte volte.
- Risilienza operativa[[] – I Runbook possono essere progettati con logica di riprovazione, gestione degli errori e procedure di fallback, rendendo le operazioni cloud più robuste per i guasti transitori.
Impostare il primo manuale di automazione di Azure
Per iniziare, è necessario un abbonamento Azure e un Account Automazione. I seguenti passaggi delineano il processo di alto livello:
- Crea un Account di Automazione[[] – Nel portale Azure, cerca "Conti di Automation" e creane uno. Scegli una regione che supporta Azure Automation (la maggior parte lo fanno), e lascia le opzioni di default per l'identità e la crittografia gestite.
- Assign Permissions[[] – Il Conto Automazione ha bisogno di autorizzazioni per agire sulle risorse Azure. Configurare un'identità gestita assegnata al sistema o un principio di servizio con i ruoli RBAC necessari (ad esempio, Contributor su un gruppo di risorse per l'automazione delle VM).
- Import Moduli obbligatori[[] – Se il tuo Runbook utilizza cmdlet personalizzati, vai sotto "Moduli risorse del raccolto" e importali. I moduli Azure vengono aggiornati automaticamente, ma i moduli di terze parti devono essere aggiunti manualmente.
- Crea un Runbook[[ – In "Process Automation > Runbooks", fare clic su "Crea un Runbook". Dagli un nome, seleziona il tipo (PowerShell è consigliato per i nuovi utenti), e scegli una versione runtime (PowerShell 7.2 per il supporto cross-platform).
- ]Autore lo script[[] – Modificare il Runbook utilizzando l'editor integrato o uno strumento esterno. Al minimo, includere la gestione degli errori con blocchi di prova / di arresto e l'uso per garantire che il Runbook si fermi su errori critici.
- Aggiungi programmi o Webhooks[[] – Collegare il Runbook a uno o più programmi, o creare un webhook per attivarlo da strumenti esterni come Azure DevOps o ServiceNow.
- Test and Publish[[] – Utilizzare il "pannello di prova" per eseguire il Runbook contro un ambiente di prova. Una volta verificato, pubblicare il Runbook per renderlo disponibile per l'uso di produzione.
Avanzate Scheduling e Triggers con Eventi
Mentre i trigger manuali e programmati sono semplici, Azure Automation supporta anche l'automazione guidata dagli eventi attraverso l'integrazione con Azure Event Grid e Azure Monitor.
Integrazione di reti di eventi
Con la sottoscrizione agli eventi Azure Event Grid, è possibile attivare un Runbook ogni volta che si verifica un evento di risorse specifico, come una creazione di VM, un blob di storage viene caricato o un cambio di tag. Ad esempio, un Runbook può automaticamente taggare tutte le nuove VM con un tag "CostCenter" basato sull'abbonamento in cui vengono creati, assicurando che le politiche di governance vengano applicate dal primo giorno.
Avvisi per monitor Azure
Configurare un gruppo di azione per invocare un Runbook quando un fuoco di allarme metrico o di registro. Ciò consente una correzione completamente automatizzata: un avviso per "Disk space > 90%" può attivare un Runbook che pulisce i file temporanei o aumenta la dimensione del disco.
Considerazioni ibride del lavoratore
Se è necessario automatizzare le attività on-premises o su VM non-Azure (ad esempio, AWS EC2 o VMware), distribuire un Runbook Worker ibrido. Questo agente viene eseguito su una macchina Windows o Linux ed esegue Runbooks localmente, permettendo di gestire server che non possono raggiungere direttamente gli endpoint Azure. Il lavoratore si registra con il tuo Account di Automazione e può essere preso di mira tramite i parametri di Runbook.
Migliori Pratiche di Sicurezza per i Runbooks
Se non si trattasse correttamente, l'automazione introduce potenziali rischi di sicurezza. Segui queste linee guida per mantenere il tuo ambiente sicuro:
- Utilizza le identità gestite[[] – Invece di credenziali di servizio di hardcoding, utilizzare l'identità gestita dal sistema di Automation Account o assegnata dall'utente per autenticare le risorse Azure, eliminando così la necessità di memorizzare e ruotare i segreti.
- Leverage Azure Key Vault[[] – Per i segreti che non sono risorse Azure (ad esempio, chiavi API, password di database), conservarli in Key Vault e recuperarli a runtime utilizzando il cmdlet [.
- Versables sensibili Encrypt[] – Le variabili nel conto di automazione possono essere contrassegnate come "crittografate".
- Applicare il minimo privilegio[[] – Concedi il conto di automazione o la sua identità gestita solo le autorizzazioni minime richieste. Ad esempio, un Runbook che ferma solo le VM dovrebbe avere "Contributor di macchine virtuali" a livello di gruppo di risorse, non Contributor di abbonamento.
- Ristrict Webhook Access[[] – Webhooks sono URL accessibili pubblicamente. Utilizzare un token di autorizzazione nell'intestazione o combinare con Azure API Management per convalidare i chiamanti. Evitare di utilizzare webhooks per i Runbook ad alta privacy senza ulteriore autenticazione.
- Codice di Runbook Audit[[] – Trattare i tuoi script di Runbook come qualsiasi altro codice: esaminarli nelle richieste di pull, utilizzare il controllo sorgente e la scansione per contenuti maligni prima di distribuire.
Monitoraggio e registrazione delle esecuzioni di Runbook
La visibilità delle prestazioni e dei guasti di Runbook è essenziale per mantenere un'automazione affidabile. Azure Automation fornisce diverse funzionalità di monitoraggio integrate:
- Stato di lavoro[[] – Nel portale, è possibile visualizzare un elenco delle recenti esecuzioni di lavoro, il loro stato (Queued, Running, Completed, Failed), e il tempo impiegato.
- I flussi dirboso e di progresso[] – Aggiungendo e []] le dichiarazioni al vostro Runbook, è possibile effettuare il login dettagliato che aiuta a debug. È necessario configurare i livelli di registrazione "Verbose" e "Progress" nelle impostazioni di Runbook.
- Integrazione analitica di registrazione[[[]] – Inviare i log di lavoro a uno spazio di lavoro a Log Analytics consentendo l'impostazione "Azure Diagnostics" sul tuo Account di automazione.
- Allering on Falls[[] – Utilizzare Azure Monitor per creare una regola di avviso che si attiva quando un lavoro di Automazione termina con uno stato "Failed".
Gestione dei costi e delle risorse
Tuttavia, il servizio ha un generoso livello di libertà: i primi 500 minuti di esecuzione del lavoro al mese sono liberi, che copre molti ambienti piccoli e medi. Oltre a questo, i prezzi sono misurati al minuto per ogni runtime di lavoro. I lavoratori di Runbook ibrido anche incorrere in costi basati sulle risorse VM che consumano, ma non c'è alcuna tassa aggiuntiva per il ruolo stesso del lavoratore.
Per ottimizzare i costi, prendere in considerazione questi suggerimenti:
- Usa ] per incatenare Runbooks – Invece di mettere tutta la logica in un singolo Runbook a lungo termine, romperlo in Runbook più piccoli e concentrati che si attivano l'un l'altro.
- Avoid polling loops[[] – Se il tuo Runbook ha bisogno di aspettare un processo esterno, utilizzare Azure Logic Apps per gestire l'inquinamento e chiamare un Runbook solo quando la condizione è soddisfatta.
- Durate di lavoro di maggiorazione[[] – Regolarmente ricontrollare i lavori di lungo periodo. Se un Runbook richiede costantemente più di pochi minuti, ottimizzare lo script o considerare se può essere rotto in compiti paralleli.
Integrazione con Azure DevOps e CI/CD
Per adottare l'automazione in scala, trattare i tuoi Runbook come codice e integrarli nel tuo ciclo di vita di sviluppo. Conservare i file sorgente Runbook in un repository Git (Azure Repos, GitHub, o GitLab). Utilizzare un canale CI/CD per convalidare la sintassi, eseguire test unità (ad esempio, Pester for PowerShell), e quindi pubblicare automaticamente gli ambienti Runbook al Account Automation.
Azure Automation supporta anche soluzioni di gestione e monitoraggio delle modifiche, che possono automatizzare ulteriormente il rilevamento della patch e della configurazione della deriva, che sono costruite in cima allo stesso motore Runbook e possono essere incorporate nella vostra strategia di automazione generale.
Modelli di attuazione del mondo reale
Basato sull'esperienza del settore, ecco due robusti modelli utilizzati dalle organizzazioni per gestire le attività di routine:
Modello 1: Risparmio di costi con avvio automatico / piano
Una grande impresa utilizza un singolo PowerShell Runbook che legge un elenco di ID VM da un file sicuro Azure Blob Storage. Il Runbook è programmato due volte al giorno – una volta per avviare le VM alle 7:00 e una volta per fermarli alle 19:00. Include una tabella di ricerca per le vacanze aziendali (ad esempio, Natale) per saltare le partenze.
Modello 2: Compliance-Driven Resource Cleanup
Una società di servizi finanziari utilizza un Runbook (tramite Event Grid) che monitora eventi "Microsoft.Compute/virtualMachines/write" e, quando viene creata una nuova VM, Runbook controlla la presenza di un tag obbligatorio. Se assente, avvisa il proprietario via e-mail e, dopo un periodo di grazia di 24 ore, chiude la VM. taggato Questo assicura che tutte le risorse siano per il monitoraggio dei costi e la governance.
Conclusioni
Azure Automation Runbooks offre un modo maturo, flessibile e conveniente per gestire le attività cloud di routine. automatizzando il ciclo di vita della VM, i backup, la pulizia delle risorse e la risposta agli incidenti, i team IT possono ridurre drasticamente il carico di lavoro manuale, migliorando affidabilità e sicurezza. La chiave per il successo sta iniziando piccolo - automatizzare un semplice compito prima, poi espandersi.
- Documentazione ufficiale: Azure Automation Panoramica
- Guida di autore di Runbook: Azure Automation Runbook Authoring
- Le migliori pratiche di sicurezza: Linee guida per l'automazione