Despliegue de agentes

Cree un registro de agente en la región IBM Cloud® Schematics seleccionada para trabajar directamente en su infraestructura de nube en red privada o zonas de red aisladas.

Siga los pasos para crear y desplegar un agente.

  1. Cree una definición de agente para gestionar el despliegue del agente. Este paso inicializa Schematics con la configuración de agente que se utiliza para desplegar el agente en su ubicación de destino.
  2. Despliegue el agente utilizando los mandatos de CLI de ibmcloud schematics agent validate y ibmcloud schematics agent deploy o las API correspondientes.

Antes de empezar

Revise y complete los pasos que se describen en Preparación para el despliegue del agente. Tras la creación del clúster, la instancia IBM Cloud Object Storage y el bucket IBM Cloud Object Storage, recopile la siguiente información como entrada para desplegar su agente en su ubicación de destino.

  • El clúster, la instancia de IBM Cloud Object Storage y IBM Cloud Object Storage se crean en el mismo grupo de recursos.

  • Anote cluster ID, cluster resource group y region del clúster Kubernetes Service que el agente despliega.

  • El IBM Cloud® Object Storage instance name, IBM Cloud Object Storage bucket name del grupo Object Storage se utiliza para el almacenamiento de datos temporal del agente. El grupo de recursos y la región de la instancia y el depósito de « IBM Cloud Object Storage » deben coincidir con los del clúster.

  • Opcional - si necesita actualizar el servidor proxy a un microservicio de Agente, consulte configurar Schematics agentes a un servidor proxy.

  • Opcional: si está utilizando una instancia de Git privada, debe establecer la conexión con un agente a través del certificado. Para obtener más información, consulte pasos para asociar un agente con una instancia de Git privada.

    Debe ver que el Cluster y el IBM Cloud Object Storage instance están en el mismo grupo de recursos.

Creación de una definición de agente

  1. Inicie sesión en la consolaIBM Cloud.
  2. Haga clic en el icono de menú hamburguesa > Automatización de plataformas > Schematics > Extensiones > Crear agente.
    • En la sección Definir detalles de agente:
      • Introduce un nombre de agente único.
      • Seleccione Localización y Grupo de recursos en la opción desplegable.
      • Especifique Etiquetas y Descripción para el agente.
    • En la sección Asignar a clúster:
      • Seleccione el IBM Cloud Kubernetes Service o el servicio Red Hat OpenShift.
      • Seleccione el nombre de clúster.
      • En Definir instancia de COS
        • Introduce el nombre de la instancia de COS
        • Introduce el nombre del bucket de COS
        • Especifique la región de grupo de COS
  3. Haz clic en « Definir ».
  4. Pulse Validar para validar el clúster y la configuración de IBM Cloud Object Storage.
  5. Pulse Desplegar para desplegar un agente.

Creación de una definición de agente mediante CLI

Como primer paso, debe crear una definición de agente en su cuenta IBM Cloud, con la configuración que se utiliza para desplegar el agente. Para obtener una lista completa de las opciones de agent create, consulte el mandato ibmcloud schematics agent create.

Seleccione la región IBM Cloud desde la que desea definir y gestionar su agente. Establezca Mandato de región de CLI ejecutando ibmcloud target -r <region>. La región debe ser la misma que la location especificada en el comando agent create. La ubicación del grupo IBM Cloud Object Storage debe tener el formato eu-gb o us-south y no un nombre de ciudad.

Sintaxis de agent create de ejemplo. El texto entre < > debe añadirse con los valores:

ibmcloud schematics agent create --name <agent-ga-prod-cli-jan-10> --location <us-south> --agent-location <us-south> --version <1.0.0> --infra-type <ibm_kubernetes> --cluster-id <cg3fgvad0dak571xxx> --cluster-resource-group <Default> --cos-instance-name <agent-cos-instance> --cos-bucket <agent-cos-bucket> --cos-location <us-east> --resource-group <Default>

Salida

Creating agent...
OK
ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           Defined
Version          1.0.0
Location         us-south
Agent Location   us-south
Resource Group   aac37f57b20142dba1a435c70aeb12df
Metadata         [Metadata]
                 - [git]
                 - [github.com]

Anote el Agent ID para utilizarlo en mandatos posteriores. Para visualizar los detalles del agente, puede utilizar el mandato get del agente.

Ejemplo

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Retrieving agent...
OK
ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version          1.0.0
Location         us-south
Agent Location   us-south
Resource Group   Default
Metadata         [Metadata]
                 - [git]
                 - [github.com]

Verificación de los requisitos previos para el despliegue de agentes mediante CLI

Puede verificar la definición de agente y la disponibilidad de clúster utilizando el mandato de validación de agente. La validación realiza una comprobación previa de la infraestructura del agente de destino. El mandato toma Agent ID como entrada devuelta por el mandato agent create. La salida del comando agent validates muestra la lista de nombres de propiedades Kubernetes y del agente relevantes, el valor esperado, el valor real y el resultado como PASS o FAIL.

Ejemplo

ibmcloud schematics agent validate --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Initiating agent validate...
Job ID	.ACTIVITY.600cadf9
Polling status...
Status	job_pending
Status	job_in_progress
Status	job_in_progress
Status	job_in_progress
Status	job_finished

Ejemplo

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Retrieving agent...
OK
ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version
Location         us-south
Agent Location   us-south
Resource Group   Default
Recent Job   Job ID                             Status                  Last modified
DEPLOY       -                                  Deploy in progress      2024-01-10T09:54:32.607Z
VALIDATE     8b168c1e0e4b35708e95c2af9a99d9d4   Successful validation   2024-01-10T09:53:48.435Z

Despliegue de un agente a través de CLI

Utilice la definición de agente para desplegar el agente con el mandato agent deploy. El mandato agent deploy toma Agent ID como entrada. Puede actualizar una implantación existente utilizando la opción force deploy.

El despliegue del agente tarda varios minutos en completarse.

ibmcloud schematics agent deploy --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Initiating agent deploy...
Job ID	.ACTIVITY.465e9716

Ejemplo

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Retrieving agent...
OK
ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version          1.0.0
Location         us-south
Agent Location   us-south
Resource Group   Default
Recent Job   Job ID               Status                 Last modified
DEPLOY       .ACTIVITY.465e9716   Triggered deployment   2024-01-10T10:20:48.435Z
VALIDATE     8b168c1e0e4b35708e   Successful validation   2024-01-10T09:53:48.435Z

Verificación del despliegue del agente mediante CLI

Puede verificar el estado del agente desplegado recientemente utilizando el mandato agent health. El mandato toma Agent ID como entrada. La salida muestra la lista de Kubernetes relevantes con los nombres de propiedad de salud del agente, el valor esperado, el valor real y el resultado como PASS o FAIL.

Ejemplo

ibmcloud schematics agent health --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Initiating agent health...
Job ID	.ACTIVITY.f6f77588

Ejemplo

ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c

Salida

Retrieving agent...
OK
ID               agent-ga-prod-cli-jan-10.soA.cd1c
Name             agent-ga-prod-cli-jan-10
Status           ACTIVE
Version
Location         us-south
Agent Location   us-south
Resource Group   Default
Recent Job   Job ID                             Status                   Last modified
DEPLOY       f5c6987ce53032547b6d5d5f870dfe5f   Job Success               0001-01-01T00:00:00.000Z
HEALTH       .ACTIVITY.f6f77588                 Triggered health check   2023-03-27T12:31:15.326Z

Además, puede utilizar el Kubernetes CLI (kubectl) o Kubernetes dashboard de su clúster para ver el estado y los logs de los microservicios relacionados con los agentes, pods, deployment, configmap, y Cluster bindings en los namespaces, schematics-agent-observe, schematics-sandbox, schematics-runtime y schematics-job-runtime.

Creación de un agente a través de la API

Siga los pasos para crear una señal de acceso de IAM y autenticarse con Schematics a través de la API. Para obtener más información, consulte Crear un agente utilizando la API.

Ejemplo

  POST /v2/agents HTTP/1.1
  Host: schematics.cloud.ibm.com
  Content-Type: application/json
  Authorization: Bearer
  {
    "name": "agentb1-gsmforvpc",
    "description": "Create Agent",
    "resource_group": "Default",
    "tags": [
        "env:prod",
        "mytest"
    ],
    "version": "v1.0.0",
    "schematics_location": "eu-de",
    "agent_location": "Frankfurt MZR",
    "agent_infrastructure": {
        "infra_type": "ibm_kubernetes",
        "cluster_id": "cg3fgvad0dak571op4g0",
        "cluster_resource_group": "Default",
        "cos_instance_name": "agent-cos-instance",
        "cos_bucket_name": "agent-cos-bucket"
    },
    "user_state": {
        "state": "enable"
    }
}

Verifique que la definición de agente se ha creado correctamente tal como se muestra en la salida. Anote el ID de agente para utilizarlo en mandatos posteriores. Por ejemplo, agentb1-gsmforvpc.soA.115c.

Salida

  {
      "name": "agentb1-gsmforvpc",
      "description": "Create Agent",
      "resource_group": "aac37f57b20142dba1a435c70aeb12df",
      "tags": [
          "env:prod",
          "mytest"
      ],
      "version": "v1.0.0",
      "schematics_location": "eu-de",
      "agent_location": "Frankfurt MZR",
      "user_state": {
          "state": "enable",
          "set_by": "xxxx@in.ibm.com",
          "set_at": "2023-03-16T18:08:18.399224788Z"
      },
      "agent_crn": "crn:v1:bluemix:public:schematics:eu-de:a/1f7277194bb748cdxxxxxxxxxxx42-0d59-415c-a6ce-0b662f520a4d:agent:agentb1-gsmforvpc.soA.115c",
      "id": "agentb1-gsmforvpc.soA.115c",
      "created_at": "2023-03-16T18:08:18.39924616Z",
      "creation_by": "xxxxx@in.ibm.com",
      "updated_at": "0001-01-01T00:00:00Z",
      "system_state": {
          "status_code": "draft"
      },
      "agent_kpi": {}
  }

Ahora, ejecute la API agent deploy con agent ID para crear el espacio de trabajo Schematics que despliega el agente. La operación agent deploy inicia las operaciones agent validate y agent deploy para configurar el agente.

Sintaxis

  PUT /v2/agents/<enter your agentID>/deploy HTTP/1.1
  Host: schematics.cloud.ibm.com
  Content-Type: application/json
  Authorization: Bearer

Ejemplo

  PUT /v2/agents/agentb1-gsmforvpc.soA.115c/deploy HTTP/1.1
  Host: schematics.cloud.ibm.com
  Content-Type: application/json
  Authorization: Bearer

Salida

{
    "workspace_id": "eu-de.workspace.agentb1-gsmforvpc-deploy.1xxxxdf",
    "job_id": ".ACTIVITY.7f40fdc0",
    "updated_at": "2023-03-16T18:13:27.217864196Z",
    "updated_by": "xxxx@in.ibm.com",
    "status_code": "PENDING",
    "status_message": "Triggered deployment"
}

Creación de un agente a través de Terraform

Para crear el despliegue del agente Schematics mediante Terraform, defina el recurso ibm_schematics_agent_deploy en su archivo de configuración de Terraform. Sigue los siguientes pasos para crear el agente « Schematics ». Opcionalmente, puede consultar el módulo terraform-ibm-schematics-agent para obtener código de infraestructura relacionado y ejemplos de uso.

  1. Instala la CLI de Terrafrom.

  2. Configure el complemento IBM Cloud Provider Plug-in for Terraform.

  3. Pruebe su configuración.

  4. Defina el recurso ibm_schematics_agent en el archivo main.tf.

    resource "ibm_schematics_agent" "schematics_agent_instance" {
    agent_infrastructure {
            infra_type = "ibm_kubernetes"
            cluster_id = "cluster_id"
            cluster_resource_group = "cluster_resource_group"
            cos_instance_name = "cos_instance_name"
            cos_bucket_name = "cos_bucket_name"
            cos_bucket_region = "cos_bucket_region"
    }
    agent_location = "us-south"
    agent_metadata {
            name = "purpose"
            value = ["git", "terraform", "ansible"]
    }
    description = "Create Agent"
    name = "MyDevAgent"
    resource_group = "Default"
    schematics_location = "us-south"
    tags = ["agent-MyDevAgent"]
    version = "1.0.0"
    }
    

    O utilice el módulo Terraform IBM para agente de esquemas como se muestra:

    module "schematics_agent" {
        source                      = "terraform-ibm-modules/schematics-agent/ibm"
        version                     = "1.4.0"
        infra_type                  = "ibm_openshift"
        cluster_id                  = "cluster-id"
        cluster_resource_group_name = "Default"
        cos_instance_name           = "cos-instance-name"
        cos_bucket_name             = "cos-bucket-name"
        cos_bucket_region           = "cos-bucket-region"
        agent_location              = "us-south"
        agent_description           = "schematics agent description"
        agent_name                  = "k8s-schematics-agent"
        agent_resource_group_name   = "Default"
        schematics_location         = "us-south"
        agent_version               = "1.5.0"
    }
    
  5. Inicializar

    terraform init
    
  6. Aplicar

    terraform apply
    
  7. Utilice el recurso ibm_schematics_agent_deploy para desplegar un agente.

    resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" {
    agent_id = "agent_id"
    }
    

Puede consultar la IBM Cloud Provider Plug-in for Terraform para obtener más parámetros específicos del recurso.

Nota

Una vez completado el despliegue del Agente para ca-mon, mostrará inicialmente un estado de error. Para resolver esto, es necesario crear una puerta de enlace de punto final virtual(puerta de enlace VPE) para la región Schematics private apuntando al grupo de seguridad kube-vpeg-<cluster_IDxxxx> en el espacio de nombres schematics-runtime. Este proceso dura unos 5 minutos. Una vez completado, el estado de despliegue del Agente cambia a completo.

Próximos pasos

El despliegue y la configuración de un agente se han completado.

  • Si está utilizando una instancia Git privada, entonces establezca la conexión con un agente a través de certificado. Para obtener más información, consulte pasos para asociar un agente para conectarse.
  • Para configurar y aprovisionar su infraestructura mediante, consulte políticas de agente. La política de agente la utiliza Schematics para direccionar dinámicamente los trabajos de descarga del repositorio Git, los trabajos Workspace o Terraform y los trabajos Action o Ansible a un agente.
  • Gestione el agente de y el clúster de Kubernetes.
  • Puede consultar las Preguntas más frecuentes del agente para cualquier pregunta común relacionada con los agentes.
  • Cuando el agente ya no es necesario, se puede eliminar siguiendo los pasos de suprimir un agente.