Création de chaînes d'outils

DevOps Insights Le service prendra fin et sera interrompu le 31 août 2026. Le service Continuous Delivery sera interrompu dans les régions suivantes le 12 février 2027 : au-syd, ca-tor, us-east. Code Risk Analyzer sera également retiré du marché dans toutes les régions à cette date. Si ces fonctionnalités ne sont pas activement utilisées dans une région donnée, elles pourraient y être supprimées plus tôt et ne plus accepter de nouvelles instances. En savoir plus

Une chaîne d'outils est un ensemble d'intégrations d'outils prenant en charge des tâches de développement, de déploiement et d'opérations. La puissance combinée d'une chaîne d'outils est supérieure à la somme de la puissance de ses différents outils.

Les chaînes d'outils ouvertes sont disponibles sous IBM Cloud®. Vous pouvez créer une chaîne d'outils de plusieurs façons : utiliser un modèle pour créer une chaîne d'outils, créer une chaîne d'outils pour une application, créer une chaîne d'outils en utilisant les API ou SDK de HTTP, ou créer une chaîne d'outils en utilisant Terraform.

Chaque chaîne d'outils est associée à un groupe de ressources spécifique. Tout utilisateur disposant du droit d'affichage Identity and Access Management (IAM) pour la ressource de chaîne d'outils ou le groupe de ressources qui le contient peut accéder à la chaîne d'outils. Pour plus d'informations sur le contrôle d'accès aux chaînes d'outils dans les groupes de ressources, voir Gestion de l'accès utilisateur aux chaînes d'outils dans les groupes de ressources.

Sur IBM Cloud Public, selon le modèle ou la chaîne d'outils que vous utilisez, il est possible que la chaîne d'outils inclue un référentiel GitHub ou Git rempli avec le code de démarrage d'application et un pipeline de distribution préconfiguré. Lorsque vous envoyez des changements au référentiel de la chaîne d'outils, le pipeline de distribution génère et déploie automatiquement l'application sur IBM Cloud.

Pour savoir quelles sont les chaînes d'outils et intégrations d'outils disponibles, voir Disponibilité, modèles et tutoriels de chaîne d'outils.

Création d'une chaîne d'outils à partir d'un modèle à l'aide de la console

Vous pouvez utiliser un modèle comme point de départ pour créer une chaîne d'outils comprenant un ensemble spécifique d'intégrations d'outils. En fonction du modèle utilisé, vous pouvez créer une chaîne d'outils possédant un ensemble spécifique d'intégrations d'outils ou une chaîne d'outils vide dans laquelle vous ajoutez des intégrations d'outils. Pour en savoir plus sur l'utilisation des modèles, voir Méthode IBM Cloud Garage.

  1. Connectez-vous à IBM Cloud.

  2. Dans la console IBM Cloud, cliquez sur l'icône Menu > Automatisation de la plateforme > Chaînes d'outils.

  3. Sur la page Chaînes d'outils, cliquez sur Créer une chaîne d'outils.

  4. Sur la page Créer une chaîne d'outils, cliquez sur un modèle de chaîne d'outils.

  5. Examinez le diagramme de la chaîne d'outils que vous être sur le point de créer. Ce diagramme montre chaque intégration d'outils dans sa phase de cycle de vie au sein de la chaîne d'outils.

    Quelques modèles de chaîne d'outils possèdent plusieurs instances d'intégration d'outils. Par exemple, le modèle de chaîne d'outils "Develop and test microservices with Kubernetes and Helm " sur IBM Cloud Public contient quatre instances de GitHub et quatre instances de Delivery Pipeline.

    L'image suivante fournit un exemple de diagramme. Lorsque vous créez une chaîne d'outils, le diagramme représente chaque intégration d'outil faisant partie de la chaîne d'outils.

    {: caption="de la chaîne d'outilsChaîne d'" caption-side="bottom"} type

  6. Vérifiez les valeurs par défaut des paramètres de la chaîne d'outils :

    • Le nom de la chaîne d'outils l'identifie dans IBM Cloud. Si vous désirez utiliser un nom différent, modifiez le nom de la chaîne d'outils.
    • La région de création de la chaîne d'outils. Si vous souhaitez utiliser une région différente, sélectionnez-la dans la liste des régions disponibles.
    • Groupe de ressources pour la création de la chaîne d'outils dans. Si vous souhaitez utiliser un autre groupe de ressources, sélectionnez-le dans la liste des groupes de ressources disponibles.
    • Le fournisseur de votre référentiel source, tel que GitHub, GitLab ou Bitbucket. Si vous voulez utiliser un fournisseur de source différent, sélectionnez-le dans la liste des référentiels disponibles.
  7. Dans la section Intégrations d'outils, sélectionnez chaque intégration d'outils à configurer pour votre chaîne d'outils. Quelques intégrations d'outils ne nécessitent pas de configuration. Pour plus d'informations sur la configuration des intégrations d'outils, voir Configuration des intégrations d'outils.

    Un grand nombre des intégrations d'outils qui comprennent une chaîne d'outils nécessitent un secret pour s'authentifier auprès du service Continuous Delivery.

    Un secret correspond à des données d'identification qui peuvent être fournies sous la forme d'un mot de passe, d'un jeton d'authentification, d'une clé d'API ou d'un certificat. Par exemple, lorsque vous ajoutez l'intégration d'outils Delivery Pipeline à votre chaîne d'outils, vous devez fournir un secret sous la forme d'une clé d'API.

    a. Dans la section Intégrations d'outils, cliquez sur Delivery Pipeline.

    b. Cliquez sur Nouveau pour créer une clé d'API IBM Cloud®.

    c. Cliquez sur OK pour appliquer votre nouvelle clé d'API.

    Chaque utilisateur peut disposer d'un maximum de 20 clés d'API.

    d. Cliquez sur OK pour créer la clé d'API sans sauvegarder une copie sécurisée de la clé.

    e. Pour enregistrer la clé API en toute sécurité afin de pouvoir la réutiliser dans d'autres workflows de la chaîne d'outils :

    • Cochez la case Enregistrer cette clé dans un magasin de secrets pour réutilisation pour l'intégrer au magasin de secrets Key Protect ou Secrets Manager.
    • Si vous ne disposez pas encore d'une instance de Key Protect ou Secrets Manager, indiquez un nom pour l'instance ainsi que le secret.
    • Cliquez sur OK pour appliquer votre nouvelle clé d'API.

    f. Pour vérifier que votre instance Key Protect ou Secrets Manager a été créée, accédez à votre liste de ressourcesIBM Cloud® et développez le triangle Services. Pour afficher vos clés API, dans la barre de menu, cliquez sur Gérer > Accès (IAM), puis sélectionnez Clés API d' IBM Cloud®.

    . La clé d'API que vous avez créée et copiée dans Key Project est désormais disponible pour être utilisée sur la page Créer une chaîne d'outils. Toute intégration d'outils nécessitant un secret affiche une icône représentant une clé. Cliquez sur l'icône en forme de clé pour ouvrir la boîte de dialogue Secrets Picker afin de récupérer des secrets à partir d'une ou plusieurs instances d' Key Protect ou d' Secrets Manager.

  8. Cliquez sur Créer. Plusieurs étapes s'exécutent automatiquement pour configurer votre chaîne d'outils. Les intégrations d'outils définies sont différentes selon le modèle de chaîne d'outils que vous avez sélectionné. Par exemple, lorsque vous créez une chaîne d'outils "Développer et tester des microservices avec Kubernetes et Helm" sur IBM Cloud Public, les étapes suivantes sont exécutées:

    • La chaîne d'outils est créée.
    • Si vous avez configuré Delivery Pipeline, les pipelines sont créés et déclenchés.
    • Si vous avez configuré l' Event Notifications, la chaîne d'outils est configurée pour envoyer des notifications d'événements au service Event Notifications que vous avez spécifié.
    • Si vous avez configuré Sauce Labs, la chaîne d'outils est configurée pour ajouter des travaux de test Sauce Labs aux pipelines.
    • Si vous avez configuré PagerDuty, la chaîne d'outils est configurée pour envoyer des notifications d'alerte au service PagerDuty que vous avez indiqué.
    • Si vous avez configuré Slack, la chaîne d'outils est configurée pour envoyer au canal Slack que vous avez spécifié des notifications sur le statut de déploiement.
    • Si vous avez configuré une intégration d'outils de code source, comme GitHub, le référentiel exemple GitHub est cloné dans votre compte GitHub.

    Vous pouvez désormais distribuer des notifications d'événements en utilisant l'intégration de l'outil Event NotificationsIBM Cloud Event Notifications est la méthode préférée pour distribuer des notifications à PagerDuty et à d'autres canaux de communication tels que Slack, email, SMS, notifications push, webhook, Microsoft® Teams, ServiceNow, et IBM Cloud Functions. Pour plus d'informations sur l'utilisation de Event Notifications, voir Activation des notifications d'événements pour les chaînes d'outils.

Création d'une chaîne d'outils à partir d'une application à l'aide de la console

Vous pouvez créer une chaîne d'outils à partir de votre application. La chaîne d'outils peut prendre en charge le développement, le déploiement, la surveillance, etc. en continu, et elle est associée à votre application. Chaque application peut être associée à une chaîne d'outils. Lorsque vous envoyez des changements au référentiel GitHub de la chaîne d'outils, le pipeline génère et déploie automatiquement l'application.

  1. Si vous avez utilisé IBM Cloud Public pour créer votre application, celle-ci est configurée pour une livraison continue à partir d'un nouveau dépôt GitHub contenant le code de démarrage de l'application.

  2. Sur la page de configuration des chaînes d'outils, passez en revue le diagramme de la chaîne d'outils que vous êtes sur le point de créer. Ce diagramme montre chaque intégration d'outils dans sa phase de cycle de vie au sein de la chaîne d'outils.

  3. Passez en revue les informations par défaut des paramètres de chaîne d'outils. Le nom de la chaîne d'outils l'identifie dans IBM Cloud. Si vous désirez utiliser un nom différent, modifiez le nom de la chaîne d'outils.

  4. Dans la section Intégrations d'outils, sélectionnez chaque intégration d'outils à configurer pour votre chaîne d'outils. Quelques intégrations d'outils ne nécessitent pas de configuration. Pour plus d'informations sur la configuration des intégrations d'outils, voir Configuration des intégrations d'outils.

  5. Cliquez sur Créer. Plusieurs étapes s'exécutent automatiquement pour configurer votre chaîne d'outils. Par exemple, lorsque vous créez une chaîne d'outils à partir d'une application sur IBM Cloud Public, les étapes suivantes sont exécutées :

    • La chaîne d'outils est créée.
    • Si vous avez configuré Delivery Pipeline, les pipelines sont créés et déclenchés.
    • Si vous avez configuré GitHub, le référentiel exemple GitHub est cloné dans votre compte GitHub.

Création d'une chaîne d'outils à l'aide de l'API

  1. Obtenez un jeton bearer IAM. Sinon, si vous utilisez un SDK, obtenez une clé d'API IAM et définissez les options client à l'aide de variables d'environnement.

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL={base_url}
    
  2. Recherchez l'ID du groupe de ressources dans lequel vous souhaitez créer votre chaîne d'outils.

  3. Choisissez la région dans laquelle vous souhaitez créer votre chaîne d'outils.

  4. Créer une instance de la chaîne d'outils.

    curl -X POST \
      "{base_url}/toolchains" \
      -H 'Authorization: Bearer {token}' \
      -H 'Content-Type: application/json' \
        -d '{
        "name": "{toolchain_name}",
        "resource_group_id": "{resource_group_id}"
      }'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const toolchainPrototypeModel = {
          description: {toolchain_description},
          name: {toolchain_name},
          resourceGroupId: {resource_group_id}
       };
       const response = await toolchainService.createToolchain(toolchainPrototypeModel);
    })();
    
    import (
    	   "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2"
    )
    ...
    toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{}
    toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions)
    createToolchainOptions := toolchainClient.NewCreateToolchainOptions({toolchain_name}, {resource_group_id})
    createToolchainOptions.SetDescription({toolchain_description})
    toolchain, response, err := toolchainClient.CreateToolchain(createToolchainOptions)
    
    from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2
    ...
    toolchain_service = CdToolchainV2.new_instance()
    toolchain = toolchain_service.create_toolchain(
       description = {toolchain_description},
       name = {toolchain_name},
       resource_group_id = {resource_group_id}
    )
    
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain;
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*;
    ...
    CdToolchain toolchainService = CdToolchain.newInstance();
    CreateToolchainOptions createToolchainOptions = new CreateToolchainOptions.Builder()
       .description({toolchain_description})
       .name({toolchain_name})
       .resourceGroupId({resource_group_id})
       .build();
    Response<ToolchainPost> response = toolchainService.createToolchain(createToolchainOptions).execute();
    ToolchainPost toolchain = response.getResult();
    

Le tableau suivant répertorie et décrit chacune des variables utilisées dans les étapes précédentes.

Variables pour le provisionnement d'une chaîne d'outils avec l'API
Variable Description
{base_url} Le point de terminaison de l'API Toolchain URL, par exemple https://api.us-south.devops.cloud.ibm.com/toolchain/v2. Pour plus d'informations sur ce point de terminaison URL, y compris une liste de valeurs, voir Point de terminaison URL.
{iam_api_key} Votre clé d'API IAM.
{resource_group_id} ID du groupe de ressources dans lequel mettre à disposition la chaîne d'outils. Pour trouver les ID des groupes de ressources disponibles, exécutez ibmcloud resource groups.
{token} Un jeton IAM de type bearer valide.
{toolchain_description} Description de votre chaîne d'outils.
{toolchain_name} Un nom pour votre chaîne d'outils.

Pour plus d'informations sur la création de chaînes d'outils avec l'API, voir Création d'une chaîne d'outils dans la documentation d'API IBM Cloud.

Création d'une chaîne d'outils avec Terraform

  1. Pour installer l'interface de ligne de commande de Terraform et configurer le plug-in IBM Cloud Provider pour Terraform, suivez le tutoriel d'initiation à Terraform sur IBM Cloud®.

  2. Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, ajoutez la configuration permettant de créer une chaîne d'outils à l'aide du langage de configuration HashiCorp. Pour plus d'informations sur l'utilisation de ce langage de configuration, voir la documentation Terraform.

    L'exemple suivant crée une chaîne d'outils à l'aide de la ressource ibm_cd_toolchain.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_cd_toolchain" "cd_toolchain" {
      name              = "my toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    

    Pour plus d'informations sur ibm_cd_toolchain, voir les détails de référence des arguments dans la documentation du registre Terraform.

  3. Initialisez l'interface de ligne de commande de Terraform.

    terraform init
    
  4. Créez un plan d'exécution Terraform. Ce plan récapitule toutes les actions qui doivent être exécutées pour créer une chaîne d'outils.

    terraform plan
    
  5. Appliquer le plan d'exécution Terraform. Terraform prend toutes les actions requises pour créer la chaîne d'outils.

    terraform apply
    

Affichage d'une chaîne d'outils

Vous pouvez afficher une chaîne d'outils à l'aide de la console, à partir de l'interface de ligne de commande, avec l'API ou avec Terraform.

Affichage d'une chaîne d'outils à l'aide de la console

Une fois que vous avez configuré la chaîne d'outils et ses intégrations d'outils, vous pouvez afficher une représentation visuelle de la chaîne d'outils.

Vous pouvez afficher une chaîne d'outils à partir d'une application en cliquant sur le nom de la chaîne d'outils sur la page Détails de l'application.

  1. Dans la console IBM Cloud, cliquez sur l'icône Menu > Automatisation de la plateforme > Chaînes d'outils.

  2. Sur la page Toolchains, sélectionnez un groupe de ressources et un emplacement. Toutes les chaînes d'outils contenues dans le groupe de ressources et l'emplacement sélectionnés s'affichent. Cliquez sur la chaîne d'outils à afficher pour ouvrir sa page Vue d'ensemble. Sinon, sur la page Détails de l'application de votre application, cliquez sur le nom de la chaîne d'outils.

  3. Pour accéder à une intégration d'outils qui se trouve dans votre chaîne d'outils, accédez à la carte appropriée, telle que les pipelines de livraison, puis cliquez sur l'intégration de l'outil.

    Vous pouvez également trouver vos chaînes d'outils dans la catégorie Developer tools de la liste des ressources. Par défaut, la liste des ressources affiche des chaînes d'outils et d'autres ressources dans plusieurs groupes de ressources et emplacements.

    Si vous avez plus d'un GitHub ou référentiels Git, vous pouvez avoir plusieurs instances de la même intégration d'outils dans la carte Référentiels car chaque référentiel est représenté séparément. Si vous disposez de plusieurs pipelines, il se peut que vous ayez plusieurs instances d'une même intégration d'outil, car chaque pipeline est représenté séparément. Par exemple, lorsque vous créez une chaîne d'outils "Développez et testez des microservices avec Kubernetes et Helm ", chacun des microservices a son propre repo GitHub ou Git et son propre pipeline.

Affichage d'une chaîne d'outils à partir de l'interface de ligne de commande

La vue de la chaîne d'outils de l'interface de ligne de commande (CLI) dépend du groupe de ressources ciblé. Utilisez les commandes suivantes pour spécifier ou modifier le groupe de ressources ciblé.

  • Pour afficher le groupe de ressources actuellement ciblé, exécutez la commande suivante :
ibmcloud target
  • Si aucun groupe de ressources n'est défini, ou si vous souhaitez modifier le groupe de ressources, exécutez la commande suivante :
ibmcloud target -g [RESOURCE-GROUP]
  • Pour afficher les chaînes d'outils du groupe de ressources ciblé, exécutez la commande suivante :
ibmcloud dev toolchains
  • Pour afficher les détails d'une chaîne d'outils spécifique, exécutez la commande suivante :
ibmcloud dev toolchain-get [TOOLCHAIN-NAME]
  • Pour afficher les détails d'une chaîne d'outils dans un navigateur, exécutez la commande suivante :
ibmcloud dev toolchain-open [TOOLCHAIN-NAME]

Obtention d'une chaîne d'outils avec l'API

  1. Obtenez un jeton bearer IAM. Sinon, si vous utilisez un SDK, obtenez une clé d'API IAM et définissez les options client à l'aide de variables d'environnement.

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL={base_url}
    
  2. Recherchez l'ID du groupe de ressources dans lequel réside votre chaîne d'outils.

  3. Choisissez la région dans laquelle réside votre chaîne d'outils.

  4. Obtenir la liste des chaînes d'outils du groupe de ressources.

    curl -X GET \
      "{base_url}/toolchains?resource_group_id={resource_group_id}" \
      -H 'Authorization: Bearer {token}' \
      -H 'Accept: application/json'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const response = await toolchainService.listToolchains({
          resourceGroupId: {resource_group_id}
       });
    })();
    
    import (
    	   "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2"
    )
    ...
    toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{}
    toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions)
    listToolchainsOptions := toolchainClient.NewListToolchainsOptions({resource_group_id})
    toolchains, response, err := toolchainClient.ListToolchains(listToolchainsOptions)
    
    from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2
    ...
    toolchainService = CdToolchainV2.new_instance()
    toolchains = toolchainService.list_toolchains(
       resource_group_id = {resource_group_id}
    )
    
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain;
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*;
    ...
    CdToolchain toolchainService = CdToolchain.newInstance();
    ListToolchainsOptions listToolchainsOptions = new ListToolchainsOptions.Builder()
       .resourceGroupId({resource_group_id})
       .build();
    Response<ToolchainCollection> response = toolchainService.listToolchains(listToolchainsOptions).execute();
    ToolchainCollection toolchains = response.getResult();
    
  5. Obtenir une chaîne d'outils spécifique.

    curl -X GET \
      {base_url}/toolchains/{toolchain_id} \
      -H 'Authorization: Bearer {token}' \
      -H 'Accept: application/json'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const response = await toolchainService.getToolchainById({
          toolchainId: {toolchain_id}
       });
    })();
    
    getToolchainByIDOptions := toolchainClient.NewGetToolchainByIDOptions({toolchain_id})
    toolchain, response, err := toolchainClient.GetToolchainByID(getToolchainByIDOptions)
    
    toolchain = toolchainService.get_toolchain_by_id(
       toolchain_id = {toolchain_id}
    )
    
    GetToolchainByIdOptions getToolchainByIdOptions = new GetToolchainByIdOptions.Builder()
       .toolchainId({toolchain_id})
       .build();
    Response<Toolchain> response = toolchainService.getToolchainById(getToolchainByIdOptions).execute();
    Toolchain toolchain = response.getResult();
    

Le tableau suivant répertorie et décrit chacune des variables utilisées dans les étapes précédentes.

Variables pour l'affichage d'une chaîne d'outils avec l'API
Variable Description
{base_url} Le point de terminaison de l'API Toolchain URL, par exemple https://api.us-south.devops.cloud.ibm.com/toolchain/v2. Pour plus d'informations sur ce point de terminaison URL, y compris une liste de valeurs, voir Point de terminaison URL.
{resource_group_id} ID du groupe de ressources dans lequel réside la chaîne d'outils. Pour trouver les ID des groupes de ressources disponibles, exécutez ibmcloud resource groups.
{token} Un jeton IAM de type bearer valide.
{toolchain_id} ID de votre chaîne d'outils.

Pour plus d'informations sur la liste des chaînes d'outils avec l'API et sur l'obtention d'une chaîne d'outils avec l'API, voir Obtention d'une liste de chaînes d'outils et Obtention d'une chaîne d'outils dans la documentation d'API IBM Cloud.

Affichage d'une chaîne d'outils avec Terraform

  1. Localisez le fichier Terraform (par exemple, main.tf) qui contient le bloc resource pour la chaîne d'outils existante.

  2. Ajoutez un bloc output au fichier Terraform, s'il ne contient pas déjà de bloc.

    Le fichier resource de l'exemple suivant décrit une chaîne d'outils existante. Le bloc output demande à Terraform de générer les attributs de la ressource de chaîne d'outils.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_cd_toolchain" "cd_toolchain" {
      name              = "my toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    output "cd_toolchain_attributes" {
      value = ibm_cd_toolchain.cd_toolchain
    }
    

    Pour plus d'informations sur ibm_cd_toolchain, voir les détails de référence des arguments dans la documentation du registre Terraform.

  3. Initialisez l'interface de ligne de commande de Terraform.

    terraform init
    
  4. Appliquez le plan d'exécution Terraform avec l'option refresh-only. Terraform actualise son état et affiche les attributs de la ressource de chaîne d'outils.

    terraform apply -refresh-only -auto-approve