Configurazione di Terraform per Code Engine

Terraform su IBM Cloud® consente la creazione prevedibile e coerente di servizi IBM Cloud in modo da poter costruire rapidamente ambienti cloud complessi e multilivello seguendo i principi di Infrastructure as Code ( IaC ). Analogamente all'uso della CLI o dell'API e degli SDK di IBM Cloud, è possibile automatizzare la creazione, l'aggiornamento e l'eliminazione dei carichi di lavoro di Code Engine utilizzando HashiCorp Configuration Language (HCL).

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

Installazione di Terraform e configurazione delle risorse per Code Engine

Prima di poter creare i carichi di lavoro con Terraform, assicurati di aver completato i seguenti prerequisiti.

  • Assicurarsi di avere l'accesso necessario per creare e lavorare con le risorse di Code Engine.
  • Installa la CLI Terraform e configurare il plug-in del provider IBM Cloud per Terraform. Per ulteriori informazioni, vedi l'esercitazione per Introduzione a Terraform su IBM Cloud®. Il plug-in astrae le API IBM Cloud utilizzate per completare questa attività.
  • Creare un file di configurazione di Terraform chiamato main.tf. In questo file, si definiscono le risorse utilizzando il linguaggio di configurazione HashiCorp. Per ulteriori informazioni, vedi la documentazione Terraform.
  1. Crea un progetto Code Engine utilizzando l'argomento della risorsa code_engine_project nel file main.tf.

    data "ibm_resource_group" "resource_group" {
       name = "<your_resource_group_name>"
    }
    
    resource "ibm_code_engine_project" "code_engine_project_instance" {
       name = "<your_project_name>"
       resource_group_id = data.ibm_resource_group.resource_group.id
    }
    
  2. Dopo aver terminato la creazione del file di configurazione, inizializza la CLI Terraform. Per ulteriori informazioni, consultare la sezione Inizializzazione delle directory di lavoro.

    terraform init
    
  3. Eseguire il provisioning del progetto dal file main.tf. Per ulteriori informazioni, vedi Provisioning dell'infrastruttura con Terraform.

    1. Eseguire terraform plan per generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.

      terraform plan
      
      data.ibm_resource_group.resource_group: Reading...
      data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>]
      
      Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
         + create
      
      Terraform will perform the following actions:
      
         # ibm_code_engine_project.code_engine_project_instance will be created
         + resource "ibm_code_engine_project" "code_engine_project_instance" {
            + account_id        = (known after apply)
            + created_at        = (known after apply)
            + crn               = (known after apply)
            + href              = (known after apply)
            + id                = (known after apply)
            + name              = "<your_project_name>"
            + project_id        = (known after apply)
            + region            = (known after apply)
            + resource_group_id = "<your_resource_group_id>"
            + resource_type     = (known after apply)
            + status            = (known after apply)
         }
      
      Plan: 1 to add, 0 to change, 0 to destroy.
      
    2. Eseguire terraform apply per creare le risorse definite nel piano.

      terraform apply
      
      data.ibm_resource_group.resource_group: Reading...
      data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>]
      
      Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
         + create
      
      Terraform will perform the following actions:
      
         # ibm_code_engine_project.code_engine_project_instance will be created
         + resource "ibm_code_engine_project" "code_engine_project_instance" {
            + account_id        = (known after apply)
            + created_at        = (known after apply)
            + crn               = (known after apply)
            + href              = (known after apply)
            + id                = (known after apply)
            + name              = "my-project"
            + project_id        = (known after apply)
            + region            = (known after apply)
            + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e"
            + resource_type     = (known after apply)
            + status            = (known after apply)
         }
      
      Plan: 1 to add, 0 to change, 0 to destroy.
      
      Changes to Outputs:
         + ibm_code_engine_project = {
            + account_id        = (known after apply)
            + created_at        = (known after apply)
            + crn               = (known after apply)
            + href              = (known after apply)
            + id                = (known after apply)
            + name              = "my-project"
            + project_id        = (known after apply)
            + region            = (known after apply)
            + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e"
            + resource_type     = (known after apply)
            + status            = (known after apply)
            + timeouts          = null
         }
      
      Do you want to perform these actions?
         Terraform will perform the actions described above.
         Only 'yes' will be accepted to approve.
      
         Enter a value: yes
      
      ibm_code_engine_project.code_engine_project_instance: Creating...
      ibm_code_engine_project.code_engine_project_instance: Still creating... [10s elapsed]
      ibm_code_engine_project.code_engine_project_instance: Still creating... [20s elapsed]
      ibm_code_engine_project.code_engine_project_instance: Still creating... [30s elapsed]
      ibm_code_engine_project.code_engine_project_instance: Creation complete after 30s [id=13468527-84sa-619g-gr99-168fe364w98f]
      
      Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
      
      Outputs:
      
      ibm_code_engine_project = {
         "account_id" = "<your_account_id>"
         "created_at" = "2023-03-16T10:44:24.150838188Z"
         "crn" = "crn:v1:bluemix:public:codeengine:eu-de:a/dc5e6392e5d14021846031b83e95f190:13468527-84sa-619g-gr99-168fe364w98f::"
         "href" = "https://api.eu-de.codeengine.cloud.ibm.com/v2/projects/13468527-84sa-619g-gr99-168fe364w98f"
         "id" = "13468527-84sa-619g-gr99-168fe364w98f"
         "name" = "my-project"
         "project_id" = "<your_project_id>"
         "region" = "eu-de"
         "resource_group_id" = "<your_resource_group_id>"
         "resource_type" = "project_v2"
         "status" = "active"
         "timeouts" = null /* object */
      }
      
  4. Puoi visualizzare il tuo progetto nell'elenco di progetti nella consoleCode Engine. In alternativa puoi vedere il tuo progetto nell'elenco di risorse IBM Cloud, espandendo la categoria Containers e cercando il nome del progetto.

Operazioni successive

Ora che hai creato correttamente il tuo primo progetto Code Engine con Terraform su IBM Cloud, puoi creare ulteriori risorse.

Risorse

Origini dati

Per ulteriori informazioni su IBM Cloud e Terraform, consulta IBM Cloud Provider.