Utilizzo di Terraform per configurare Schematics

Terraform su IBM Cloud® consente un provisioning prevedibile e coerente dei servizi IBM Cloud per costruire rapidamente ambienti cloud complessi e multilivello secondo i principi di Infrastructure as Code ( IaC ). Allo stesso modo, è possibile automatizzare il provisioning, l'aggiornamento e l'eliminazione delle istanze dello spazio di lavoro e delle azioni di IBM Cloud Schematics utilizzando Terraform.

Cercate una soluzione Terraform gestita su IBM Cloud? Prova IBM Cloud Schematics. Con Schematics si può usare il linguaggio Terraform che si conosce, ma non ci si deve preoccupare di impostare e mantenere la riga di comando di Terraform e il plug-in IBM Cloud Provider. Schematics fornisce anche modelli Terraform predefiniti che si possono installare dal catalogo IBM Cloud.

Prima di iniziare, assicurati di disporre dell'accesso obbligatorio per creare e utilizzare lo spazio di lavoro IBM Cloud Schematics.

Esempio: creazione di spazi di lavoro Schematics utilizzando Terraform

Completa la seguente procedura per creare uno spazio di lavoro Schematics utilizzando Terraform:

  1. Segui l'esercitazione introduttiva di Terraform on IBM Cloud per installare la CLI Terraform e configurare IBM Cloud Provider Plug-in for Terraform. Il plug-in astrae le risorse IBM Cloud APIs utilizzate per il provisioning, l'aggiornamento o la cancellazione delle risorse Schematics.

  2. Crea i file di configurazione Terraform denominati main.tf, terraform.tfvars e versions.tf.

    È possibile utilizzare l' URL Git di esempio di Terraform https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway. Questo esempio utilizza un'istanza di servizio per impostare un'API per un servizio IBM Cloud a scelta. Puoi definire l'endpoint API che vuoi utilizzare per accedere al tuo servizio e definire le chiavi di sottoscrizione in modo da poter utilizzare in modo sicuro la tua API.

    Se hai uno spazio di lavoro creato in una regione diversa da us, devi impostare l'endpoint API su tale regione. Ad esempio, se la tua regione specificata è eu, l'endpoint API deve essere specificato come IBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.com nella variabile di ambiente. Per ulteriori informazioni sulle posizioni dell'area di lavoro Schematics e sugli endpoint da utilizzare, vedere Dove sono archiviate le mie informazioni?

    Crea quindi lo Schematics spazio di lavoro tf-testwks-apigwy nel gruppo di risorse default della tua regione. Questo spazio di lavoro punta a un modello Terraform di tua scelta che richiede la versione Terraform terraform_v1.5.

    versions.tf

    Il file versions.tf di esempio per specificare la versione del provider necessaria per creare lo spazio di lavoro.

      terraform {
      required_version = ">=1.0.0, <2.0"
        required_providers {
          ibm = {
            source = "IBM-Cloud/ibm"
          }
        }
      }
    

    terraform.tfvars

    Il file terraform.tfvars di esempio per memorizzare le informazioni sensibili, ad esempio le credenziali. Per ulteriori informazioni, vedi Riferimento alle credenziali da un terraform.tfvars file. Per creare le chiavi API, consulta Creazione e chiavi API.

    schematics_workspace_name="tf-testwks-apigwy"
    schematics_workspace_description="Sample workspace created with terraform with URL"
    schematics_workspace_type="terraform_v1.5"
    schematics_workspace_location="us-south"
    schematics_workspace_resource_group="default"
    ibmcloud_api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    

    main.tf

    Esaminare il seguente file main.tf di esempio. Questo file richiama le variabili dal file terraform.tfvars usando l' URL Git, quindi crea uno spazio di lavoro Schematics usando la chiave API IBM Cloud...e la propria chiave API.

    variable "schematics_workspace_name" {}
    variable "schematics_workspace_description" {}
    variable "schematics_workspace_type" {}
    variable "schematics_workspace_location" {}
    variable "schematics_workspace_resource_group" {}
    variable "ibmcloud_api_key" {}
    
    resource "ibm_schematics_workspace" "schematics_workspace_instance" {
    name = var.schematics_workspace_name
    description = var.schematics_workspace_description
    location = var.schematics_workspace_location
    resource_group = var.schematics_workspace_resource_group
    tags = ["sample"]
    template_env_settings = [
        { env1 = "val1" },
        { env2 = "val2" }
    ]
    template_type= var.schematics_workspace_type
    template_git_url = "https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway"
    }
    
    provider "ibm" {
    region           = "us-south"
    ibmcloud_api_key = var.ibmcloud_api_key
    }
    
    

    La seguente tabella elenca i parametri supportati quando crei e inizializzi un'istanza del servizio con Terraform. Per ulteriori informazioni sui parametri dettagliati per la creazione dello spazio di lavoro, consultare la risorsa ibm_schematics_workspace.

    Parametri supportati per creare spazi di lavoro Schematics con Terraform.
    Parametro Descrizione
    description La descrizione dell'area di lavoro.
    location L'ubicazione in cui vuoi creare il tuo spazio di lavoro Schematics ed eseguire le azioni Schematics.
    resource_group L'ID del gruppo di risorse in cui si desidera eseguire il provisioning dello spazio di lavoro.
    name Il nome dell'area di lavoro. Il nome può contenere fino a 128 caratteri e può includere caratteri alfanumerici, spazi, trattini e caratteri di sottolineatura. Quando crei uno spazio di lavoro per il tuo modello Terraform, valuta la possibilità di includere nel nome il componente del microservizio che hai configurato con il tuo modello Terraform e l'ambiente IBM Cloud in cui desideri distribuire le tue risorse.
    tags Un elenco di tag associate allo spazio di lavoro.
    template_env_settings Un elenco di variabili di ambiente che vuoi applicare durante l'esecuzione di un'azione Terraform.
    template_git_url L' URL del repository Git, dove sono presenti i dettagli di configurazione per il provisioning della risorsa.
    template_type Specifica la versione Terraform che vuoi applicare nello spazio di lavoro Schematics.
  3. Inizializza la CLI Terraform.

    terraform init
    

    Se il percorso della variabile di ambiente per Terraform non è impostato, puoi visualizzare l'errore command not found: terraform. Correggi l'errore impostando il percorso della tua directory di installazione Terraform.

  4. Creare un piano di esecuzione Terraform. Il piano di esecuzione Terraform riepiloga tutte le azioni che devono essere eseguite per creare lo spazio di lavoro Schematics nel tuo account.

    terraform plan
    
  5. Creare l'istanza dello spazio di lavoro Schematics e la politica di accesso IAM in IBM Cloud.

    terraform apply
    

    Per ulteriori informazioni sulla risoluzione degli errori del comando terraform apply, vedere Individuare la causa principale del fallimento di Schematics apply.

  6. Dal dashboardSchematics, controlla che sia stato creato il tuo spazio di lavoro tf-testwks-apigwy. E le risorse vengono fornite da Elenco di risorse IBM Cloud Schematics.

  7. Verificare che la politica di accesso sia stata assegnata correttamente. Per ulteriori informazioni, vedi Revisione dell'accesso assegnato nella console.

Operazioni successive

Ora che hai creato correttamente il tuo primo spazio di lavoro Schematics con Terraform su IBM Cloud, puoi scegliere tra le seguenti attività:

  • Impara come creare una risorsa IBM Cloud Schematics job per eseguire il template Terraform in IBM Cloud.
  • Per eseguire Ansible playbooks in IBM Cloud controlla la risorsa AzioneIBM Cloud Schematics.
  • Esplora altre risorse e origini dati Terraform supportate per IBM Cloud Schematics o esegui il checkout di altri argomenti e attributi che puoi utilizzare per le risorse Terraform utilizzate nell'esempio.
  • Semplificate il provisioning utilizzando Terraform IBM Modules(TIM) open source, sicuro per impostazione predefinita e pronto per le aziende.