IBM Cloud Docs
Creación de cadenas de herramientas

Creación de cadenas de herramientas

Una cadena de herramientas es un conjunto de integraciones de herramientas que dan soporte a tareas de desarrollo, despliegue, y operaciones. La potencia en conjunto de una cadena de herramientas es superior a la suma de las integraciones de las herramientas individuales.

Las cadenas de herramientas abiertas están disponibles en IBM Cloud®. Puede crear una cadena de herramientas de varias maneras: utilizar una plantilla para crear una cadena de herramientas, crear una cadena de herramientas para una app, crear una cadena de herramientas utilizando API o SDK HTTP, o crear una cadena de herramientas utilizando Terraform.

Cada cadena de herramientas está asociada a un grupo de recursos específico. Cualquier usuario que tenga permiso de Visor de Identity and Access Management (IAM) para el recurso de cadena de herramientas o el grupo de recursos que lo contiene puede acceder a la cadena de herramientas. Para obtener más información sobre el control de accesos para las cadenas de herramientas de los grupos de recursos, consulte Gestión del acceso de usuarios a las cadenas de herramientas de los grupos de recursos.

En IBM Cloud Público, en función de la plantilla o cadena de herramientas que se utilice, es posible que la cadena de herramientas incluya un repositorio de GitHub o Git que contenga código de inicio de la app y un conducto de entrega ya configurado. Cuando se envían los cambios al repositorio de la cadena de herramientas, el conducto de entrega crea y despliega automáticamente la app en IBM Cloud.

Para ver qué cadenas de herramientas e integraciones de herramientas están disponibles, consulte Disponibilidad de cadenas de herramientas, plantillas y guías de aprendizaje.

Creación de una cadena de herramientas a partir de una plantilla utilizando la consola

Puede utilizar una plantilla como punto de partida para crear una cadena de herramientas que incluya un conjunto específico de integraciones de herramientas. En función de la plantilla que utilice, puede crear una cadena de herramientas que tenga un conjunto específico de integraciones de herramientas o bien una cadena de herramientas vacía a la que puede añadir integraciones de herramientas. Obtenga más información sobre cómo utilizar las plantillas en IBM Cloud Garage Method.

  1. Inicie sesión en IBM Cloud.

  2. En la consola IBM Cloud, haga clic en el icono de menú hamburguesa > Automatización de la plataforma > Cadenas de herramientas.

  3. En la página Cadenas de herramientas, pulse Crear una cadena de herramientas.

  4. En la página Crear una cadena de herramientas, haga clic en una plantilla de cadena de herramientas.

  5. Revise el diagrama de la cadena de herramientas que se dispone a crear. El diagrama muestra cada integración de herramientas en la fase del ciclo de vida correspondiente en la cadena de herramientas.

    Algunas de las plantillas de cadena de herramientas tienen varias instancias de una integración de herramientas. Por ejemplo, la plantilla de cadena de herramientas "Desarrollar y probar microservicios con Kubernetes y Helm" en IBM Cloud Público contiene cuatro instancias de GitHub y cuatro instancias de Delivery Pipeline.

    El diagrama de la imagen siguiente es un ejemplo. Cuando cree una cadena de herramientas, el diagrama mostrará cada integración de herramientas que forma parte de la cadena de herramientas.

    Diagrama de la cadena de
    de la cadena
    herramientas*

  6. Revise la información predeterminada de los valores de la cadena de herramientas:

    • El nombre de la cadena de herramientas la identifica en IBM Cloud. Si desea utilizar otro nombre, cambie el nombre de la cadena de herramientas.
    • La región en la que se va crear la cadena de herramientas. Si desea utilizar otra región, selecciónela en la lista de regiones disponibles.
    • Grupo de recursos en el que crear la cadena de herramientas. Si quiere utilizar un grupo de recursos distinto, selecciónelo en la lista de grupos de recursos disponibles.
    • El proveedor del repositorio de origen, por ejemplo GitHub, GitLab o Bitbucket. Si desea utilizar otro proveedor de origen, selecciónela en la lista de repositorios disponibles.
  7. En la sección Integraciones de herramientas, seleccione las integraciones de herramientas que desee configurar para su cadena de herramientas. Algunas integraciones de herramientas no necesitan configuración. Para obtener más información sobre cómo configurar las integraciones de herramientas, consulte Configurar integraciones de herramientas.

    Muchas de las integraciones de herramientas que comprenden una cadena de herramientas necesitan un secreto para autenticarse con el servicio Continuous Delivery.

    Un secreto son credenciales que se pueden proporcionar en forma de contraseña, señal de autenticación, clave de API o certificado. Por ejemplo, cuando añade la integración de la herramienta Delivery Pipeline a la cadena de herramientas, debe proporcionar un secreto en forma de clave de API.

    a. En la sección Integraciones de herramientas, pulse Delivery Pipeline.

    b. Pulse Nueva para crear una clave de API de IBM Cloud®.

    c. Pulse Aceptar para aplicar la nueva clave de API.

    Cada usuario puede tener un máximo de 20 claves de API.

    d. Pulse Aceptar para crear la clave de API sin guardar una copia segura de la clave.

    e. Para guardar de forma segura la clave API y poder volver a utilizarla en otros flujos de trabajo de la cadena de herramientas:

    • Seleccione la casilla ' Guarda esta clave en un almacén de secretos para reutilizarla ' para integrar con la tienda de secretos ' Key Protect o ' Secrets Manager '.
    • Si no tiene una instancia existente de Key Protect o Secrets Manager, especifique un nombre para la instancia y el secreto.
    • Pulse Aceptar para aplicar la nueva clave de API.

    f. Para validar que la instancia de Key Protect o Secrets Manager se ha creado correctamente, vaya a la lista de recursos IBM Cloud® y expanda el triángulo Servicios. Para ver sus claves de API, en la barra de menús, haga clic en Gestionar > Acceso (IAM) y seleccione IBM Cloud® Claves API.

    g. La clave de API que ha creado y copiado en el proyecto clave está ahora disponible para su uso en la página Crear una cadena de herramientas. Cualquier integración de herramientas que necesite un secreto muestra un icono de clave. Haga clic en el icono de llave para abrir un cuadro de diálogo Selector de secretos para recuperar secretos de una o varias instancias Key Protect o Secrets Manager.

  8. Pulse Crear. Para configurar la cadena de herramientas, se ejecutan varios pasos automáticamente. Las integraciones de herramientas configuradas difieren en función de la plantilla de cadena de herramientas seleccionada. Por ejemplo, cuando crea una cadena de herramientas "Desarrollar y probar microservicios con Kubernetes y Helm" en IBM Cloud público, se ejecutan estos pasos:

    • Se crea la cadena de herramientas.
    • Si ha configurado Delivery Pipeline, los conductos se crean y se activan.
    • Si configuraste ' Event Notifications, la cadena de herramientas está configurada para enviar notificaciones de eventos al servicio ' Event Notifications ' que especificaste.
    • Si ha configurado Sauce Labs, la cadena de herramientas se configura para añadir trabajos de prueba de Sauce Labs a los conductos.
    • Si ha configurado PagerDuty, la cadena de herramientas se configura para enviar notificaciones de alerta al servicio PagerDuty que ha especificado.
    • Si ha configurado Slack, la cadena de herramientas se configura para enviar notificaciones sobre el estado de despliegue al canal Slack que ha especificado.
    • Si ha configurado la integración de una herramienta de código fuente como GitHub, el repositorio de ejemplo de GitHub se clona en su cuenta de GitHub.

    You can now distribute event notifications by using the Event Notifications tool integration. IBM Cloud Event Notifications is the preferred method for distributing notifications to PagerDuty and other communication channels such as Slack, email, SMS, push notifications, webhook, Microsoft® Teams, ServiceNow, and IBM Cloud Functions. Para obtener más información sobre cómo utilizar Event Notifications, consulte Habilitación de notificaciones de sucesos para cadenas de herramientas.

Creación de una cadena de herramientas desde una app utilizando la consola

Puede crear una cadena de herramientas desde su app. La cadena de herramientas puede admitir tareas continuadas de desarrollo, despliegue, supervisión, etc., y está asociada con su app. Cada app puede asociarse a una cadena de herramientas. Cuando se envían los cambios al repositorio de GitHub de la cadena de herramientas, el conducto crea y despliega automáticamente la app.

  1. Si ha utilizado IBM Cloud Public para crear tu aplicación, se configura para la entrega continua desde un nuevo repositorio de GitHub que se rellena con el código de inicio de la aplicación.

  2. En la página de configuración de cadenas de herramientas, revise el diagrama de la cadena de herramientas que está a punto de crear. El diagrama muestra cada integración de herramientas en la fase del ciclo de vida correspondiente en la cadena de herramientas.

  3. Revise la información predeterminada para la configuración de la cadena de herramientas. El nombre de la cadena de herramientas la identifica en IBM Cloud. Si desea utilizar otro nombre, cambie el nombre de la cadena de herramientas.

  4. En la sección Integraciones de herramientas, seleccione las integraciones de herramientas que desee configurar para su cadena de herramientas. Algunas integraciones de herramientas no necesitan configuración. Para obtener más información sobre cómo configurar las integraciones de herramientas, consulte Configurar integraciones de herramientas.

  5. Pulse Crear. Para configurar la cadena de herramientas, se ejecutan varios pasos automáticamente. Por ejemplo, si crea una cadena de herramientas a partir de una app en IBM Cloud público, se ejecutan estos pasos:

    • Se crea la cadena de herramientas.
    • Si ha configurado Delivery Pipeline, los conductos se crean y se activan.
    • Si ha configurado GitHub, el repositorio de ejemplo de GitHub se clona en su cuenta de GitHub.

Creación de una cadena de herramientas con la API

  1. Obtener una señal portadora de IAM. De forma alternativa, si utiliza un SDK, obtenga una clave de API de IAM y establezca las opciones de cliente utilizando variables de entorno.

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL={base_url}
    
  2. Busque el ID del grupo de recursos en el que desea crear la cadena de herramientas.

  3. Elija la región en la que desea crear la cadena de herramientas.

  4. Crear una instancia de la cadena de herramientas.

    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();
    

La tabla siguiente lista y describe cada una de las variables que se utilizan en los pasos anteriores.

Variables para aprovisionar una cadena de herramientas con la API
Variable Descripción
{base_url} El URL de punto final de la API de cadena de herramientas, por ejemplo, https://api.us-south.devops.cloud.ibm.com/toolchain/v2. Para obtener más información sobre este URL de punto final, incluida una lista de valores, consulte URL de punto final.
{iam_api_key} Su clave de API IAM.
{resource_group_id} El ID del grupo de recursos en el que suministrar la cadena de herramientas. Para buscar los ID de los grupos de recursos disponibles, ejecute ibmcloud resource groups.
{token} Un token de portador IAM válido.
{toolchain_description} Una descripción de la cadena de herramientas.
{toolchain_name} Un nombre para tu cadena de herramientas.

Para obtener más información sobre la creación de cadenas de herramientas con la API, consulte Crear una cadena de herramientas en la documentación de la API de IBM Cloud.

Creación de una cadena de herramientas con Terraform

  1. Para instalar la CLI de Terraform y configurar el plug-in de proveedor de IBM Cloud para Terraform, siga la guía de aprendizaje Cómo empezar con Terraform en IBM Cloud®.

  2. Cree un archivo de configuración de Terraform denominado main.tf. En este archivo, añada la configuración para crear una cadena de herramientas utilizando el Lenguaje de Configuración HashiCorp. Para obtener más información sobre cómo utilizar este idioma de configuración, consulte la documentación de Terraform.

    El ejemplo siguiente crea una cadena de herramientas utilizando el recurso 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
    }
    

    Para obtener más información sobre ibm_cd_toolchain, consulte los detalles de referencia de argumentos en la Documentación del registro de Terraform.

  3. Inicialice la CLI de Terraform.

    terraform init
    
  4. Cree un plan de ejecución de Terraform. Este plan resume todas las acciones que deben ejecutarse para crear una cadena de herramientas.

    terraform plan
    
  5. Aplique el plan de ejecución de Terraform. Terraform realiza todas las acciones necesarias para crear la cadena de herramientas.

    terraform apply
    

Visualización de una cadena de herramientas

Puede ver una cadena de herramientas utilizando la consola, desde la CLI, con la API o con Terraform.

Visualización de una cadena de herramientas mediante la consola

Una vez que se ha configurado la cadena de herramientas y sus integraciones de herramientas, es posible obtener una representación visual de la cadena de herramientas.

Puede visualizar una cadena de herramientas desde una app pulsando el nombre de la cadena de herramientas desde la página de detalles de la app.

  1. En la consola IBM Cloud, haga clic en el icono de menú hamburguesa > Automatización de la plataforma > Cadenas de herramientas.

  2. En la página de cadenas de herramientas, seleccione un grupo de recursos y una ubicación. Se muestran todas las cadenas de herramientas que contiene el grupo de recursos y la ubicación seleccionados. Pulse la cadena de herramientas que desea ver para abrir su página Visión general. Como alternativa, en la página Detalles de la app, pulse el nombre de la cadena de herramientas.

  3. Para acceder a una integración de herramientas que está en la cadena de herramientas, vaya a la tarjeta correspondiente, por ejemplo, Interconexiones de entrega y, a continuación, pulse la integración de herramientas.

    También puede encontrar las cadenas de herramientas dentro de la categoría Herramientas de desarrollador de la Lista de recursos. De forma predeterminada, la lista de recursos muestra cadenas de herramientas y otros recursos en varios grupos de recursos y ubicaciones.

    Si tiene más de un repositorio de GitHub o Git, es posible que tenga varias instancias de la misma integración de herramientas dentro de la tarjeta Repositorios, porque cada repositorio se representa por separado. Si tiene más de una canalización, es posible que tenga varias instancias de la misma integración de herramientas, ya que cada canalización se representa por separado. Por ejemplo, cuando crea una cadena de herramientas "Desarrollar y probar microservicios con Kubernetes y Helm", cada uno de los microservicios tiene su propio repositorio GitHub o Git y su propio conducto.

Visualización de una cadena de herramientas desde la CLI

La vista de cadena de herramientas de la interfaz de línea de mandatos (CLI) depende del grupo de recursos de destino. Utilice los siguientes comandos para especificar o cambiar el grupo de recursos objetivo.

  • Para ver el grupo de recursos de destino actual, ejecute el mandato siguiente:
ibmcloud target
  • Si no se ha establecido ningún grupo de recursos, o si desea cambiar el grupo de recursos, ejecute el siguiente comando:
ibmcloud target -g [RESOURCE-GROUP]
  • Para ver las cadenas de herramientas en el grupo de recursos de destino, ejecute el mandato siguiente:
ibmcloud dev toolchains
  • Para ver los detalles de una cadena de herramientas específica, ejecute el mandato siguiente:
ibmcloud dev toolchain-get [TOOLCHAIN-NAME]
  • Para ver los detalles de la cadena de herramientas en un navegador, ejecute el mandato siguiente:
ibmcloud dev toolchain-open [TOOLCHAIN-NAME]

Obtención de una cadena de herramientas con la API

  1. Obtener una señal portadora de IAM. De forma alternativa, si utiliza un SDK, obtenga una clave de API de IAM y establezca las opciones de cliente utilizando variables de entorno.

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL={base_url}
    
  2. Busque el ID del grupo de recursos en el que reside la cadena de herramientas.

  3. Elija la región en la que reside la cadena de herramientas.

  4. Obtener una lista de cadenas de herramientas en el grupo de recursos.

    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. Obtener una cadena de herramientas específica.

    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();
    

La tabla siguiente lista y describe cada una de las variables que se utilizan en los pasos anteriores.

Variables para visualizar una cadena de herramientas con la API
Variable Descripción
{base_url} El URL de punto final de la API de cadena de herramientas, por ejemplo, https://api.us-south.devops.cloud.ibm.com/toolchain/v2. Para obtener más información sobre este URL de punto final, incluida una lista de valores, consulte URL de punto final.
{resource_group_id} El ID del grupo de recursos en el que reside la cadena de herramientas. Para buscar los ID de los grupos de recursos disponibles, ejecute ibmcloud resource groups.
{token} Un token de portador IAM válido.
{toolchain_id} ID de su cadena de herramientas.

Para obtener más información sobre cómo listar cadenas de herramientas con la API y obtener una cadena de herramientas con la API, consulte Obtener una lista de cadenas de herramientas y Obtener una cadena de herramientas en la documentación de la API de IBM Cloud.

Visualización de una cadena de herramientas con Terraform

  1. Localice el archivo Terraform (por ejemplo, main.tf) que contiene el bloque resource para la cadena de herramientas existente.

  2. Añada un bloque output al archivo Terraform, si todavía no contiene un bloque.

    resource en el ejemplo siguiente describe una cadena de herramientas existente. El bloque output indica a Terraform que genere los atributos del recurso de cadena de herramientas.

    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
    }
    

    Para obtener más información sobre ibm_cd_toolchain, consulte los detalles de referencia de argumentos en la Documentación del registro de Terraform.

  3. Inicialice la CLI de Terraform.

    terraform init
    
  4. Aplique el plan de ejecución de Terraform con la opción refresh-only. Terraform renueva su estado y muestra los atributos del recurso de cadena de herramientas.

    terraform apply -refresh-only -auto-approve