Personnalisation d'une architecture déployable IBM Cloud pour construire votre propre infrastructure

Ce tutoriel vous guide dans la création d'une architecture déployable personnalisée basée sur une architecture déployable IBM Cloud® existante afin de répondre aux besoins de votre entreprise. En terminant ce tutoriel, vous avez appris à télécharger les fichiers Terraform, à mettre à jour les variables, puis à tester l'architecture mise à jour.

En commençant par une architecture déployable sur IBM Cloud, vous n'avez pas à vous préoccuper de la création d'une architecture d'infrastructure à partir de zéro. Vous pouvez obtenir un démarrage en utilisant une architecture déployable IBM Cloud et en la configurant pour répondre à vos besoins spécifiques.

Imaginez que vous êtes un professionnel de l'ingénierie de l'automatisation de l'informatique en nuage pour Example Corp, une entreprise fictive. Votre architecte d'infrastructure a parcouru le catalogue IBM Cloud et a découvert Cloud automation for Code Engine, une architecture déployable qui répond à la plupart de vos exigences. Cependant, votre architecte d'infrastructure a besoin que vous apportiez les modifications suivantes pour répondre aux besoins de votre entreprise :

  • Supprimer les variables non désirées.
  • Limiter les régions IBM Cloud aux régions de déploiement des États-Unis.
  • Mettre à jour l'architecture déployable pour faire référence à l'application d'IA d'Example Corp.

Ce tutoriel utilise un scénario fictif pour vous aider à apprendre et à comprendre quelques-unes des options de configuration d'une architecture déployable. Il explique comment personnaliser une architecture déployable pour automatiser le déploiement d'une application conteneurisée sur IBM Cloud Code Engine. L'image de conteneur existante à l'adresse icr.io/codeengine/helloworld est utilisée comme exemple d'application. Au fur et à mesure que vous complétez le tutoriel, adaptez chaque étape aux besoins de votre organisation.

Avant de commencer

  1. Pour construire une architecture, vous devez être familier avec Terraform.

  2. Assurez-vous d'utiliser un compte Paiement à la carte ou Abonnement en accédant à Gérer > Compte > Paramètres de compte dans la console IBM Cloud.

  3. Créez un référentiel pour stocker votre architecture déployable. Pour les besoins de ce tutoriel, GitHub est utilisé. Pour plus d'informations, voir Création d'un référentiel.

  4. Installez un éditeur de votre choix, par exemple, Visual Studio Code.

  5. Vérifiez que les rôles suivants vous ont été attribués : IBM Cloud Identity and Access Management (IAM):

    • Administrateur de tous les services de gestion des comptes IAM, de tous les services de gestion des comptes et de tous les services d'identité et d'accès.
    • Editeur sur le service de gestion de catalogue.
    • Rôle d'accès au service Manager pour Schematics.
    • Autres rôles requis pour des ressources spécifiques dans votre architecture déployable. L'automatisation du cloud pour Code Engine nécessite le rôle d'accès au service Writer qui est limité à toutes les ressources du service Code Engine.

    Pour plus d'informations, voir Attribution de l'accès aux services de gestion des comptes et Gestion de l'accès aux ressources.

Téléchargement des fichiers d'architecture déployables

Pour commencer, vous devez télécharger les fichiers d'architecture déployables. Les fichiers comprennent un fichier main.tf qui invoque le module Terraform racine.

  1. Dans la console IBM Cloud, cliquez sur Catalogue.

  2. Saisissez Cloud automation for Code Engine dans la barre de recherche et sélectionnez l'architecture dans la liste des résultats de la recherche.

  3. Sélectionnez v4.2.2 comme version du produit.

    Ce tutoriel a été créé sur la base de la version 4.2.2 de Cloud automation pour Code Engine. Cependant, vous pouvez sélectionner une autre version de l'architecture déployable si vous le souhaitez.

  4. Assurez-vous que la variation New Code Engine apps est sélectionnée.

  5. Cliquez sur Review deployment options dans le panneau récapitulatif.

  6. Sélectionnez Utiliser le code > Télécharger le bundle pour télécharger le bundle.

  7. Ouvrez le bundle téléchargé sur votre ordinateur local.

  8. Extrayez le paquet .tar.gz pour accéder aux fichiers d'un dossier et les modifier. Renommé le dossier extrait Example-corp-infrastructure pour faciliter la recherche et l'utilisation.

    Après avoir téléchargé et extrait le bundle, vous verrez les fichiers et dossiers suivants:

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

Edition de votre liste de variables

Lorsque votre architecte d'infrastructure a fait des recherches sur IBM Cloud Code Engine, il a décidé de modifier la région et la clé d'API IBM Cloud. Les autres variables incluses dans l'architecture ne sont pas nécessaires pour vos besoins, et vous devez donc les supprimer en utilisant votre éditeur favori Visual Studio Code.

  1. Dans Visual Studio Code, ouvrez le fichier variables.tf.

  2. Déplacez les variables suivantes au début du fichier variables.tf.

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    L'ordre des variables n'a pas d'importance.

  3. Supprimez toutes les autres variables et sauvegardez le fichier.

Mise à jour du fichier main.tf

Maintenant que vous avez mis à jour le fichier variables.tf, assurez-vous que les informations de configuration du fichier main.tf sont correctes. Comme vous souhaitez utiliser Code Engine pour exécuter une application créée par Example Corp, vous devez fournir des informations sur votre application.

  1. Ouvrez le fichier main.tf.

  2. Mettez à jour la variable app_name et saisissez "example-corp-ai-app" comme nom de l'application.

  3. Mettez à jour la variable image_reference et entrez "icr.io/codeengine/helloworld", qui est l'image docker de votre application.

  4. Ajoutez la variable project_name et entrez "example-corp-ce-project" comme nom pour votre projet Code Engine.

  5. Ajoutez la variable provider_visibility et fixez-la à "public".

  6. Confirmez que les variables ibmcloud_api_key, prefix, et region sont incluses comme indiqué dans l'exemple suivant :

    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. Sauvegardez le fichier.

Votre architecture est maintenant codée en dur pour faire référence à votre application AI d'Example Corp et configurée pour utiliser les variables pour la clé API IBM Cloud, le préfixe et la région.

Mise à jour du fichier ibm_catalog.json

Le fichier ibm_catalog.json est un fichier JSON manifeste qui est utilisé pour importer automatiquement les informations de version lorsque vous embarquez une architecture déployable dans un catalogue privé. Parce que vous avez modifié l'architecture déployable, vous avez créé une toute nouvelle architecture pour vos besoins. Mettez à jour les informations suivantes dans le fichier ibm_catalog.json pour refléter vos modifications.

Pour plus d'informations sur le fichier manifeste et sur ce qu'il contient, voir Edition locale du manifeste de catalogue.

Mise à jour des informations produit

Maintenant que vous avez mis à jour la configuration et créé votre propre architecture, vous devez également mettre à jour le nom et le nom programmatique de l'architecture déployable.

  1. Ouvrez le fichier ibm_catalog.json.

  2. Recherchez la zone label et mettez à jour le nom de votre architecture déployable dans Example Corp's infrastructure.

  3. Recherchez la zone name et mettez à jour le nom programmatique de votre architecture dans deploy-arch-example-corp.

  4. Recherchez la zone version et entrez 0.0.1 pour mettre à jour le numéro de version. Si le champ est manquant, ajoutez-le sur une nouvelle ligne immédiatement après le champ name, par exemple :

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. Dans la section flavors, trouvez le champ label et mettez à jour le nom de cette variante de votre architecture déployable en Deploy Example Corp AI app on IBM Cloud Code Engine. Ce faisant, vous identifiez l'objectif de cette variante de votre architecture déployable et ce qu'elle accomplit.

  6. Sauvegardez le fichier.

Mise à jour des informations de configuration

Vous voulez maintenant vous assurer que les utilisateurs de votre architecture déployable ne peuvent la déployer que dans les régions des États-Unis. Pour ce faire, mettez à jour les informations de variable dans la section de configuration du fichier ibm_catalog.json.

  1. Dans la section configuration du fichier ibm_catalog.json, recherchez les variables suivantes et placez-les au début de la section de configuration :

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. Pour limiter les régions aux seules régions américaines, vous devez ajouter chaque région en tant qu'option pour la variable region, supprimer les sections inutiles et définir region comme une variable obligatoire.

    {
        "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. Supprimez le reste des variables dans la section de configuration.

    Lorsque les utilisateurs déploient votre architecture, ils peuvent choisir entre les options de région que vous avez répertoriées. Pour obtenir la liste des régions disponibles, voir Régions.

  4. Enregistrez le fichier ibm_catalog.json.

Test de votre architecture déployable

Avant d'intégrer votre architecture déployable configurée à un catalogue privé et de la rendre disponible, testez votre configuration pour vous assurer que l'architecture fonctionne comme prévu. Pour tester votre architecture à l'aide de la ligne de commande Terraform, procédez comme suit:

  1. Créer ou mettre à jour un fichier .netrc qui est nécessaire pour utiliser les modules Terraform de IBM Cloud. Pour plus d'informations, voir ibmcloud catalog utility netrc.

    ibmcloud catalog utility netrc
    
  2. Initialisez l'interface de ligne de commande de Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Mettez à disposition les ressources. Pour plus d'informations, voir Mise à disposition d'une infrastructure avec Terraform.

    1. Exécutez terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.

      terraform plan
      
    2. Exécutez terraform apply pour créer les ressources définies dans le plan.

      terraform apply
      

Etapes suivantes

Si votre architecture déployable a fonctionné comme prévu, vous avez créé avec succès votre propre architecture déployable à partir de Cloud automation for Code Engine. Vous êtes maintenant prêt à déplacer vos fichiers mis à jour vers le référentiel GitHub que vous avez créé et à intégrer votre produit dans un catalogue privé.

Après avoir intégré Example Corp's infrastructure à un catalogue privé, vous pouvez le partager avec votre entreprise. Si vous n'êtes pas prêt à partager votre architecture déployable, ou si vous ne faites pas partie d'une entreprise, vous pouvez ne pas la partager et passer au tutoriel suivant, déployer Example Corp's infrastructure en utilisant un projet.