IBM Cloud Docs
Stato remoto e accesso tra aree di lavoro

Stato remoto e accesso tra aree di lavoro

IBM Cloud® fornisce la gestione remote - state integrata per Terraform. I file di stato Terraform vengono conservati automaticamente tra le esecuzioni e sono accessibili dai comandi e dalle operazioni IBM Cloud®. La gestione dello stato remoto IBM Cloud® abilita il lavoro del team e le operazioni condivise dello spazio di lavoro, con il blocco dello stato integrato che impedisce operazioni simultanee rispetto allo stesso file di stato.

La gestione dello stato remoto dello spazio di lavoro integrato supporta diversi casi di utilizzo Schematics:

  • La condivisione delle informazioni sulle risorse tra le aree di lavoro. Ciò consente alla tua infrastruttura di essere suddivisa in componenti più piccoli, con le informazioni sulle risorse di sola lettura trasmesse tra gli ambienti utilizzando le origini dati dello stato remoto Schematics. Ambienti discreti collegati da origini dati consentono di delegare la responsabilità di diversi elementi dell'infrastruttura a team differenti con informazioni condivise tra gli spazi di lavoro come risorse di sola lettura.
  • Integrazione dello spazio di lavoro e delle operazioni di azione con Azioni. Le informazioni sulle risorse dello spazio di lavoro possono essere trasmesse direttamente come un inventario dinamico Ansible senza la necessità di creare manualmente l'inventario host o utilizzare gli script di inventario.

Accesso allo stato dell'area di lavoro e agli output

Puoi accedere alle informazioni relative alle risorse che gestisci in un workspace da altre aree di lavoro nel tuo account utilizzando le origini dati ibm_schematics_output e ibm_schematics_state.

IBM Cloud® utilizza il local supporto dello stato Terraform integrato e non utilizza il supporto backend Terraform. Non è richiesta alcuna configurazione aggiuntiva nel tuo Terraform configs per abilitare la gestione dello stato remoto IBM Cloud®. Schematics non utilizza l'origine dati Terraform remote_state, ma l'origine dati ibm_schematics_output per accedere alle informazioni.

In che modo l'origine dati ibm_schematics_state è diversa dall'origine dati remote_state ?
Quando si utilizza un'origine dati di remote_state, è necessario configurare un backend per connettersi alle aree di lavoro. Con l'origine dati ibm_schematics_state, hai automaticamente accesso al backend Schematics integrato e puoi accedere direttamente alle informazioni dello spazio di lavoro.

Cosa devo fare per accedere alle informazioni sulle risorse in altri spazi di lavoro
Analogamente all'origine dati remote_state, puoi solo accedere alle informazioni che hai configurato come valori di output nel tuo modello Terraform. Ad esempio, supponiamo di avere uno spazio di lavoro che hai utilizzato per eseguire il provisioning di un VPC. Per accedere all'ID VPC, devi definirlo come una variabile di output nel tuo file di configurazione Terraform.

Per utilizzare l'origine dati ibm_schematics_output:

  1. Segui l'esempio nell'esercitazione introduttiva per creare spazi di lavoro Schematics ed eseguire il provisioning di un server virtuale in un VPC. Mentre segui le istruzioni, esamina le variabili di output definite alla fine del file di configurazione Terraform vpc.tf.

    Se hai già utilizzato un file di configurazione Terraform diverso in uno dei tuoi spazi di lavoro, puoi utilizzare questo spazio di lavoro per l'esercizio. Assicurarsi di aggiungere i valori di output come descritto in questo esempio al file di configurazione in modo che sia possibile accedere alle informazioni del workspace in un secondo momento.

    output sshcommand {
        value = "ssh root@ibm_is_floating_ip.fip1.address"
    }
    
    output vpc_id {
    value = ibm_is_vpc.vpc.id
    }
    

    In questo esempio, sono stati definiti due valori di output, sshcommand per accedere all'istanza del server virtuale nel tuo VPC e vpc_id.

  2. Richiama l'ID dello spazio di lavoro VPC che hai creato.

    Attraverso la console:

    Attraverso la CLI:

    • Elencare gli spazi di lavoro disponibili nel proprio account.
      ibmcloud schematics workspace list
      
    • Individuare l'ID spazio di lavoro nella colonna ID dell'output della riga comandi.

    L'utilizzo del comando Schematics ibmcloud terraform visualizza un messaggio di avvertenza e di obsolescenza poiché Alias 'terraform' è obsoleto. Usate "schemi" o "sch" nei vostri comandi.

  3. Creare un altro file di configurazione Terraform denominato remotestate.tf per accedere ai parametri di emissione del file vpc.tf utilizzando l'origine dati ibm_schematics_output. Per consentire il controllo della versione di questo file, assicurati di archiviare questo file di configurazione in un repository GitHub o GitLab.

    data "ibm_schematics_workspace" "vpc" {
        workspace_id = "<schematics_workspace_ID>"
    }
    
    data "ibm_schematics_output" "vpc" {
        workspace_id = "<schematics_workspace_ID>"
        template_id = data.ibm_schematics_workspace.vpc.runtime_data.0.id
    }
    
    output "output_vars" {
        value = data.ibm_schematics_output.vpc.output_values
    }
    
    output "ssh_command" {
        value = data.ibm_schematics_output.vpc.output_values.sshcommand
    }
    
    output "vpc_id" {
        value = data.ibm_schematics_output.vpc.output_values.vpc_id
    }
    
    Componenti del file di configurazione
    Idea icon Descrizione dei componenti del file di configurazione
    data.ibm_schematics_workspace.workspace_id Immettere l'ID dello spazio di lavoro VPC in cui sono stati definiti i valori di output a cui si desidera accedere. Questa origine dati è necessaria per richiamare l'ID template dello spazio di lavoro nell'origine dati ibm_schematics_output.
    data.ibm_schematics_output.workspace_id Immetti l'ID dello spazio di lavoro VPC in cui hai definito i valori di output a cui vuoi accedere.
    data.ibm_schematics_output.template_id Immettere data.ibm_schematics_workspace.vpc.runtime_data.0.id per fare riferimento al template Terraform del tuo spazio di lavoro.
    output.output_vars.value Utilizzare la sintassi di interpolazione Terraform per accedere a tutti i valori di output definiti nel file vpc.tf utilizzando il parametro di output output_values dell'origine dati ibm_schematics_output. Il parametro di output output_values restituisce tutti i valori di output come un elenco.
    output.sshcomand.value e output.vpc_id.value È possibile accedere a un determinato valore nell'elenco di output_values aggiungendo l'ID del valore di output all'origine dati ibm_schematics_output. Ad esempio, per accedere a vpc_id, utilizzare semplicemente data.ibm_schematics_output.vpc.output_values.vpc_id.
  4. Crea uno spazio di lavoro che punti al file remotestate.tf nel tuo repository GitHub o GitLab. Se invece si desidera caricare un file di archivio nastro (.tar) dalla macchina locale, utilizzare il comando ibmcloud schematics workspace upload.

  5. Esegui il tuo codice Terraform in Schematics. Quando rivedi i tuoi log, puoi visualizzare i valori di output dal tuo spazio di lavoro VPC nella sezione Output.

    Output di esempio

    ...
    2020/02/21 19:49:30 Terraform show | Outputs:
    2020/02/21 19:49:30 Terraform show |
    2020/02/21 19:49:30 Terraform show | Output_vars = {
    2020/02/21 19:49:30 Terraform show |   sshcommand = ssh root@169.61.225.111
    2020/02/21 19:49:30 Terraform show |   vpc_id = a1a11aa1-a111-a11a-a111-aa1aa11a1a1a
    2020/02/21 19:49:30 Terraform show | }
    2020/02/21 19:49:30 Terraform show | sshcommand = ssh root@169.61.225.111
    2020/02/21 19:49:30 Terraform show | vpc_id = a1a11aa1-a111-a11a-a111-aa1aa11a1a1a