Rilevamento della deviazione nelle aree di lavoro
IBM Cloud® Schematics consente agli utenti di distribuire, gestire e manipolare le risorse dell'infrastruttura con spazi di lavoro basati su Terraform utilizzando i concetti di declarative Infrastructure as Code (IaC). Tuttavia, quando
una configurazione Terraform viene distribuita e le risorse vengono create, non significa che le risorse rimangono come dichiarate dalla configurazione. Qualsiasi modifica nello stato dell'infrastruttura è denominata drift. Si verifica
quando l'infrastruttura distribuita differisce dallo stato desiderato (dichiarativo) definito dalla configurazione del modello.
Lo spostamento può verificarsi per molte ragioni. La causa più frequente sono le modifiche apportate manualmente all'infrastruttura al di fuori dell'automazione Terraform. Il file di stato Terraform del tuo spazio di lavoro distribuito non è più sincronizzato con le risorse dell'infrastruttura distribuita e lo spazio di lavoro è detto in deviazione.
La deviazione può verificarsi per molti motivi nel contesto della tua configurazione:
- Aggiunta o rimozione di risorse dalla configurazione del modello senza applicare le modifiche.
- Modifica delle definizioni delle risorse del modello.
- Esterno alla configurazione del template, la deviazione si verifica quando le modifiche vengono apportate manualmente. Ad esempio, da un'operazione della riga di comando su una risorsa cloud o da modificare tramite la console cloud.
- Può accadere attraverso altri strumenti di automazione.
Scenario di deviazione di esempio
Viene eseguito il provisioning di un'istanza VSI utilizzando IBM Cloud Schematics e un template di configurazione. Un utente cloud DevOps può modificare la configurazione VSI fornita accedendo alla console Cloud e modificando il volume di avvio
di un'istanza o aggiungendo un'interfaccia Ethernet. Queste modifiche risultano nella distribuzione della tua infrastruttura in drift.
IBM Cloud Schematics abilita, in modo prevedibile, a gestire il ciclo di vita delle risorse della tua infrastruttura utilizzando Terraform. La deviazione si verifica quando lo stato reale della tua infrastruttura differisce dallo stato definito nella tua configurazione del template Terraform.
Terraform non è in grado di rilevare la deviazione nelle risorse e negli attributi che non sono gestiti o configurati utilizzando Terraform. Ad esempio, Terraform non può rilevare le modifiche in una macchina virtuale che risultano dall'installazione
delle applicazioni in locale o utilizzando gli strumenti di gestione della configurazione come Chef o Ansible.
Rilevamento della deriva in IBM Cloud
Il rilevamento della deviazione per i tuoi spazi di lavoro di automazione Terraform è possibile in IBM Cloud Schematics. È possibile utilizzare i seguenti tre metodi per controllare il rilevamento della deviazione.
Rilevamento della deviazione utilizzando l'interfaccia utente
Puoi avviare il rilevamento della deviazione per gli spazi di lavoro dalla pagina del lavoro dello spazio di lavoro Schematics. Avvia un lavoro per rilevare la deviazione per lo spazio di lavoro e le sue risorse distribuite. Durante l'esecuzione,
il lavoro di rilevamento della deviazione è in progress, al completamento ha un failure o success. Per esaminare i dettagli del lavoro di deviazione, è necessario controllare il log del lavoro di deviazione
per lo stato di deviazione.
Visualizzazione dei log di deviazione utilizzando l'interfaccia utente
Utilizzare la seguente procedura per visualizzare il log del job di deviazione.
-
Dal dashboard dello spazio di lavoro, seleziona lo spazio di lavoro che desideri controllare per la deviazione.
-
Selezionare e aprire lo spazio di lavoro.
-
Selezionare l'elenco a discesa Azioni.
-
Selezionare l'opzione Rileva deviazione per avviare il lavoro Rileva deviazione.
-
Durante l'esecuzione, lo stato mostra
in progressspostamento in uno statosuccesso in un lavorofailureal completamento. -
Lo stato di deviazione può essere determinato esaminando l'emissione del collegamento del job quando il job è in uno stato
success. Nell'immagine viene mostrata un'esecuzione del lavoro riuscita di esempio con la deviazione rilevata.Esaminare il log del lavoro riuscito per identificare i dettagli della deviazione.
2022/04/19 10:10:44 ----- Terraform DRIFT ----- 2022/04/19 10:10:44 Starting command: terraform-drift-cli drift 2022/04/19 10:10:44 Terraform Drift | configuration drift identfied 2022/04/19 10:10:44 Terraform Drift | resource operation attribute drift value 2022/04/19 10:10:44 Terraform Drift | ibm_is_vpc.vpc + tags schematics:us-east.workspace.myworkspace-drift-demo.bfdd0e2d 2022/04/19 10:10:44 Terraform Drift | ibm_is_vpc.vpc + tags tag:new1 2022/04/19 10:10:44 Terraform Drift | ibm_is_vpc.vpc + tags tag:new2 2022/04/19 10:10:44 Terraform Drift | 2022/04/19 10:10:44 Command finished successfully. 2022/04/19 10:10:52 Done with the workspace actionSe il lavoro ha esito negativo, esaminare la causa dell'errore nel log e correggere la condizione di errore rieseguendo il lavoro.
Un log del lavoro di esempio di errore identifica la causa dell'errore del lavoro di deviazione.
2022/04/13 13:05:46 ----- Terraform Commands ----- 2022/04/13 13:05:46 Could not execute job: Error : Drift cannot be executed since state file doesn't exist. Please run terraform apply to generate state file.
Rilevamento della deviazione utilizzando la CLI
È possibile avviare la rilevazione della deviazione dal comando di creazione degli spazi di lavoro. Il rilevamento della deviazione avvia un lavoro per rilevare la deviazione per l'area di lavoro e le sue risorse specifiche. Il lavoro di rilevamento
della deviazione è in progress o completed con lo stato appropriato, ad esempio failure o success. Invece, per conoscere i dettagli del lavoro di deviazione, è necessario controllare il log
del lavoro di deviazione per lo stato di deviazione. Utilizzare i seguenti comandi per visualizzare la deviazione di rilevamento.
Creazione e visualizzazione dei log di deviazione di rilevamento utilizzando la CLI
È possibile seguire questi passaggi per rilevare la deriva negli spazi di lavoro di Schematics utilizzando la CLI.
-
Eseguire
ibmcloud schematics plan. -
Recuperare
ibmcloud schematics job logs. -
Eseguire
ibmcloud schematics apply. -
Esegui
ibmcloud schematics job runper creare un lavoro nell'area di lavoro Schematics.ibmcloud schematics job run --command-object workspace --command-object-id <workspace_id> --command-name drift -
Eseguire
ibmcloud schematics workspace actionper recuperare tutte le attività dello spazio di lavoro.ibmcloud schematics workspace action --id <workspace_id> -
Eseguire
ibmcloud schematics job logsper recuperare i log dettagliati di un lavoro per visualizzare i dettagli della deviazione.ibmcloud schematics logs --id <workspace_id> --act-id <Job_id>
Creazione e visualizzazione della deviazione di rilevamento tramite l'API
Controlla i comandi CURL per creare e visualizzare la deviazione attraverso l'API.
-
Richiama i tuoi passi di accesso IAM per l'autenticazione con IBM Cloud Schematics.
-
Crea lo spazio di lavoro. Come parte del payload devi aggiungere la seguente configurazione di deviazione.
{ commands: [ { command: 'drift', command_name: 'drift command', command_desc: 'command to detect drift in workspace resources', }, ], operation_name: 'drift', description: 'command to detect drift in workspace resources', } -
Esegui il piano di lavoroSchematics.
-
Recuperare
ibmcloud schematics job logs. -
Eseguire
ibmcloud schematics apply. -
Eseguire
ibmcloud schematics job runper creare un lavoro per lo spazio di lavoro. -
Eseguire
ibmcloud schematics workspace actionper recuperare tutte le attività dello spazio di lavoro. -
Recuperare
ibmcloud schematics job logs.