Personalizzazione di un'architettura distribuibile IBM Cloud per costruire la propria infrastruttura

Questa esercitazione spiega come creare un'architettura distribuibile personalizzata basata su un'architettura distribuibile esistente di IBM Cloud® per soddisfare le esigenze aziendali. Completando questa esercitazione, si impara a scaricare i file di Terraform, ad aggiornare le variabili e a testare l'architettura aggiornata.

Partendo da un'architettura distribuibile su IBM Cloud, non dovrete preoccuparvi di creare un'architettura dell'infrastruttura da zero. Puoi ottenere un avvio iniziale utilizzando un'architettura distribuibile IBM Cloud e configurandola per soddisfare le tue necessità specifiche.

Immaginate di essere un professionista dell'ingegneria dell'automazione del cloud per Example Corp, un'azienda fittizia. L'architetto dell'infrastruttura ha sfogliato il catalogo IBM Cloud e ha scoperto Cloud automation for Code Engine, un'architettura distribuibile che soddisfa la maggior parte dei requisiti. Tuttavia, l'architetto dell'infrastruttura deve apportare le seguenti modifiche per soddisfare le esigenze aziendali:

  • Rimuovere le variabili indesiderate.
  • Limitare le regioni di IBM Cloud alle regioni di distribuzione degli Stati Uniti.
  • Aggiornare l'architettura distribuibile per fare riferimento all'applicazione AI di Example Corp.

Questa esercitazione utilizza uno scenario fittizio per aiutarti ad apprendere e comprendere alcune delle opzioni di configurazione per un'architettura distribuibile. Spiega come personalizzare un'architettura distribuibile per automatizzare la distribuzione di un'applicazione containerizzata su IBM Cloud Code Engine. L'immagine del contenitore esistente all'indirizzo icr.io/codeengine/helloworld viene utilizzata come applicazione di esempio. Nel completare l'esercitazione, adattate ogni fase alle esigenze della vostra organizzazione.

Prima di iniziare

  1. Per costruire un'architettura, è necessario avere familiarità con Terraform.

  2. Verifica che stai utilizzando un account Pagamento a consumo o Sottoscrizione andando a Manage > Account > Account settings nella console IBM Cloud.

  3. Creare un repository per memorizzare l'architettura distribuibile. Ai fini di questa esercitazione, viene utilizzato GitHub. Per ulteriori informazioni, vedi Crea un repository.

  4. Installare un editor di propria scelta, ad esempio, Visual Studio Code.

  5. Verifica di essere assegnato ai seguenti ruoli IBM Cloud Identity and Access Management (IAM):

    • Amministratore su tutti i servizi di gestione degli account IAM, su tutti i servizi di gestione degli account e su tutti i servizi abilitati all'identità e all'accesso.
    • Editor sul servizio Gestione catalogo.
    • Ruolo di accesso al servizio Manager per Schematics.
    • Altri ruoli richiesti per risorse specifiche nell'architettura distribuibile. L'automazione del cloud per Code Engine richiede il ruolo di accesso al servizio Writer, che ha lo scopo di accedere a tutte le risorse del servizio Code Engine.

    Per ulteriori informazioni, consultare Assegnazione dell'accesso ai servizi di gestione degli account e Gestione dell'accesso alle risorse.

Download dei file di architettura distribuibili

Per iniziare, è necessario scaricare i file di architettura distribuibili. I file includono un file main.tf che richiama il modulo Terraform principale.

  1. Nella console IBM Cloud, fai clic su Catalog.

  2. Digitare Cloud automation for Code Engine nella barra di ricerca e selezionare l'architettura dall'elenco dei risultati.

  3. Selezionare v4.2.2 come versione del prodotto.

    Questo tutorial è stato creato sulla base della versione 4.2.2 di Cloud automation per Code Engine. Tuttavia, se lo si desidera, è possibile selezionare un'altra versione dell'architettura distribuibile.

  4. Assicuratevi che sia selezionata la variante Nuove applicazioni Code Engine.

  5. Fare clic su Esaminare le opzioni di distribuzione dal pannello di riepilogo.

  6. Selezionare Utilizza codice > Scarica bundle per scaricare il bundle.

  7. Aprire il bundle scaricato sul computer locale.

  8. Estrarre il bundle .tar.gz per accedere e modificare i file all'interno di una cartella. Rinominare la cartella estratta Example-corp-infrastructure per facilitarne la ricerca e l'utilizzo.

    Dopo aver scaricato ed estratto correttamente il bundle, verranno visualizzati i seguenti file e cartelle:

    • automation folder
    • ibm_catalog.json
    • main.tf
    • outputs.tf
    • provider.tf
    • README.md
    • variables.tf
    • version.tf

Modifica dell'elenco di variabili

Quando l'architetto dell'infrastruttura ha fatto ricerche su IBM Cloud Code Engine, ha deciso di modificare la regione e la chiave API IBM Cloud. Le altre variabili incluse nell'architettura non sono necessarie per i vostri scopi, quindi dovete rimuoverle usando il vostro editor preferito Visual Studio Code.

  1. In Visual Studio Code, aprire il file variables.tf.

  2. Spostare le seguenti variabili all'inizio del file variables.tf.

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    L'ordine delle variabili non ha importanza.

  3. Eliminare tutte le altre variabili e salvare il file.

Aggiornamento del file main.tf

Una volta aggiornato il file di variables.tf, verificare che le informazioni di configurazione nel file main.tf siano corrette. Poiché si vuole usare Code Engine per eseguire un'applicazione creata da Example Corp, è necessario fornire informazioni sulla propria applicazione.

  1. Aprire il file main.tf.

  2. Aggiornate la variabile app_name e inserite "example-corp-ai-app" come nome dell'applicazione.

  3. Aggiornare la variabile image_reference e inserire "icr.io/codeengine/helloworld", che è l'immagine docker dell'applicazione.

  4. Aggiungete la variabile project_name e inserite "example-corp-ce-project" come nome per il progetto Code Engine.

  5. Aggiungete la variabile provider_visibility e impostatela su "public".

  6. Confermare che le variabili ibmcloud_api_key, prefix e region siano incluse come mostrato nell'esempio seguente:

    module "deploy-arch-ibm-code-engine" {
      source      = "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/offering/source/archive//solutions/apps?archive=tgz&catalogID=7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3&flavor=apps&installType=fullstack&kind=terraform&name=deploy-arch-ibm-code-engine&version=v4.2.2"
      ibmcloud_api_key      = var.ibmcloud_api_key
      prefix      = var.prefix
      existing_resource_group_name      = var.existing_resource_group_name
      region      = var.region
      app_name      = "example-corp-ai-app"
      image_reference      = "icr.io/codeengine/helloworld"
      project_name      = "example-corp-ce-project"
      provider_visibility      = "public"
    }
    
  7. Salva il file.

L'architettura è ora codificata per fare riferimento all'applicazione Example Corp AI e configurata per utilizzare le variabili per la chiave API IBM Cloud, il prefisso e la regione.

Aggiornamento del file ibm_catalog.json

Il file ibm_catalog.json è un file JSON manifesto usato per importare automaticamente le informazioni sulla versione quando si inserisce un'architettura distribuibile in un catalogo privato. Poiché avete cambiato l'architettura distribuibile, avete creato un'architettura nuova per le vostre esigenze. Aggiornare le seguenti informazioni nel file ibm_catalog.json per riflettere le modifiche.

Per ulteriori informazioni sul file manifest e su ciò che contiene, consultare Modifica locale del manifest del catalogo.

Aggiornamento delle informazioni sul prodotto

Dopo aver aggiornato la configurazione e creato la propria architettura, è necessario aggiornare anche il nome e il nome programmatico dell'architettura distribuibile.

  1. Aprire il file ibm_catalog.json.

  2. Trova il campo label e aggiorna il nome della tua architettura distribuibile in Example Corp's infrastructure.

  3. Trova il campo name e aggiorna il nome programmatico della tua architettura a deploy-arch-example-corp.

  4. Individuare il campo version e immettere 0.0.1 per aggiornare il numero di versione. Se il campo manca, aggiungerlo su una nuova riga subito dopo il campo name, ad esempio:

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. All'interno della sezione flavors, trovare il campo label e aggiornare il nome di questa variante dell'architettura distribuibile in Deploy Example Corp AI app on IBM Cloud Code Engine. In questo modo, si identifica lo scopo di questa variante dell'architettura distribuibile e ciò che essa realizza.

  6. Salva il file.

Aggiornamento delle informazioni di configurazione

Ora, si vuole fare in modo che gli utenti dell'architettura distribuibile possano distribuirla solo nelle regioni degli Stati Uniti. Per fare ciò, aggiornare le informazioni sulle variabili nella sezione di configurazione del file ibm_catalog.json.

  1. Nella sezione configuration del file ibm_catalog.json, trovare le seguenti variabili e spostarle all'inizio della sezione di configurazione:

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. Per limitare le regioni alle sole regioni statunitensi, è necessario aggiungere ogni regione come opzione per la variabile region, eliminare le sezioni non necessarie e impostare la variabile region come variabile obbligatoria.

    {
        "key": "region",
        "type": "string",
        "default_value": "us-south",
        "description": "The region in which to provision all resources created by this solution.",
        "required": true,
        "options": [
            {
                "displayname": "us-east",
                "value": "us-east"
            },
            {
                "displayname": "us-south",
                "value": "us-south"
    
            }
        ],
        "virtual": false
    }
    
  3. Eliminare il resto delle variabili nella sezione di configurazione.

    Quando gli utenti distribuiscono l'architettura, possono scegliere tra le opzioni della regione che hai elencato. Per un elenco di regioni disponibili, vedi Regioni.

  4. Salvare il file ibm_catalog.json.

Verifica della tua architettura distribuibile

Prima di inserire l'architettura distribuibile configurata in un catalogo privato e renderla disponibile per l'uso, è necessario testare la configurazione per assicurarsi che l'architettura funzioni come previsto. Per verificare la tua architettura con la linea di comando Terraform, completa la seguente procedura:

  1. Creare o aggiornare un file .netrc necessario per utilizzare i moduli Terraform da IBM Cloud. Per ulteriori informazioni, vedi ibmcloud catalog utility netrc.

    ibmcloud catalog utility netrc
    
  2. Inizializza la CLI Terraform. Per ulteriori informazioni, consultare la sezione Inizializzazione delle directory di lavoro.

    terraform init
    
  3. Eseguire il provisioning delle risorse. 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
      
    2. Eseguire terraform apply per creare le risorse definite nel piano.

      terraform apply
      

Passi successivi

Se l'architettura distribuibile è stata eseguita come previsto, si è riusciti a creare la propria architettura distribuibile da Cloud automation per Code Engine. Ora sei pronto a spostare i tuoi file aggiornati nel repository GitHub che hai creato e eseguire l'onboarding del tuo prodotto in un catalogo privato.

Dopo aver inserito Example Corp's infrastructure in un catalogo privato, è possibile condividerlo con la propria azienda. Se non siete pronti a condividere la vostra architettura distribuibile, o se non fate parte di un'azienda, potete evitare di condividerla e continuare con la prossima esercitazione, che consiste nel distribuire Example Corp's infrastructure usando un progetto.