Déploiement d'agents

Créez un enregistrement d'agent dans la région IBM Cloud® Schematics sélectionnée pour travailler directement dans votre infrastructure cloud sur un réseau privé ou des zones de réseau isolées.

Suivez les étapes de création et de déploiement d'un agent.

  1. Créez une définition d'agent pour gérer le déploiement de l'agent. Cette étape initialise Schematics avec la configuration d'agent utilisée pour déployer votre agent à son emplacement cible.
  2. Déployez l'agent à l'aide des commandes de l'interface de ligne de commande ibmcloud schematics agent validate et ibmcloud schematics agent deploy ou des API correspondantes.

Avant de commencer

Passez en revue et effectuez les étapes décrites dans la rubrique Préparation du déploiement d'agent. Après la création du cluster, de l'instance IBM Cloud Object Storage et du seau IBM Cloud Object Storage, rassemblez les informations suivantes pour déployer votre agent à son emplacement cible.

  • Le cluster, l'instance IBM Cloud Object Storage et le compartiment IBM Cloud Object Storage sont créés dans le même groupe de ressources.

  • Enregistrez les cluster ID, cluster resource group et region du cluster Kubernetes Service que l'agent déploie.

  • Le IBM Cloud® Object Storage instance name, IBM Cloud Object Storage bucket name du compartiment Object Storage est utilisé pour le stockage des données temporaires de l'agent. Le groupe de ressources et la région de l'instance et du compartiment d' IBM Cloud Object Storage doivent être les mêmes que ceux du cluster.

  • Facultatif - si vous devez mettre à jour le serveur proxy pour un microservice Agent, reportez-vous à configuration des Schematics agents sur un serveur proxy.

  • Facultatif-si vous utilisez une instance Git privée, vous devez établir la connexion avec un agent via un certificat. Pour plus d'informations, voir la procédure d'association d'un agent à une instance Git privée.

    Vous devez voir que Cluster et IBM Cloud Object Storage instance se trouvent dans le même groupe de ressources.

Création d'une définition d'agent

  1. Connectez-vous à la consoleIBM Cloud
  2. Cliquez sur l'icône Menu > Automatisation de la plate-forme > Schematics > Extensions > Créer un agent.
    • Dans la section Définir les détails de l'agent:
      • Saisissez un nom d'agent unique.
      • Sélectionnez Lieu et Groupe de ressources dans la liste déroulante.
      • Entrez Tags et Description pour l'agent.
    • Dans la section Assign to cluster:
      • Sélectionnez le IBM Cloud Kubernetes Service ou le service Red Hat OpenShift.
      • Sélectionnez le nom de votre cluster.
      • Dans Définir une instance COS
        • Saisissez le nom de l'instance COS
        • Saisissez le nom du compartiment COS
        • Entrez la région de compartiment COS
  3. Cliquez sur « Définir ».
  4. Cliquez sur Valider pour valider la configuration du cluster et de IBM Cloud Object Storage.
  5. Cliquez sur Déployer pour déployer un agent.

Création d'une définition d'agent par l'intermédiaire de l'interface de programmation

La première étape consiste à créer une définition d'agent dans votre compte IBM Cloud, avec la configuration utilisée pour déployer l'agent. Pour obtenir la liste complète des options agent create, voir la commande ibmcloud schematics agent create.

Sélectionnez la région IBM Cloud à partir de laquelle vous souhaitez définir et gérer votre agent. Définissez la commande de région CLI en exécutant ibmcloud target -r <region>. La région doit être la même que la location spécifiée dans la commande agent create. L'emplacement du compartiment IBM Cloud Object Storage doit être au format eu-gb ou us-south et non un nom de ville.

Exemple de syntaxe agent create. Le texte entre < > doit être ajouté avec vos valeurs:

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>

Sortie

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]

Enregistrez le fichier Agent ID pour l'utiliser dans les commandes suivantes. Pour afficher les détails de l'agent, vous pouvez utiliser la commande get de l'agent.

Exemple

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

Sortie

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]

Vérification des conditions préalables au déploiement de l'agent par l'intermédiaire de l'interface de ligne de commande

Vous pouvez vérifier la définition de l'agent et la disponibilité du cluster à l'aide de la commande de validation de l'agent. La validation effectue un contrôle préalable de l'infrastructure de l'agent cible. La commande prend Agent ID comme entrée renvoyée par la commande agent create. La sortie de la commande agent validates affiche la liste des Kubernetes et des noms de propriétés de l'agent pertinents, la valeur attendue, la valeur réelle et le résultat en tant que PASS ou FAIL.

Exemple

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

Sortie

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

Exemple

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

Sortie

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

Déploiement d'un agent par l'intermédiaire de l'interface de programmation

Vous utilisez la définition d'agent pour déployer l'agent à l'aide de la commande agent deploy. La commande agent deploy utilise Agent ID comme entrée. Vous pouvez mettre à niveau un déploiement existant en utilisant l'option force deploy.

Le déploiement de l'agent prend plusieurs minutes.

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

Sortie

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

Exemple

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

Sortie

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

Vérification du déploiement de l'agent par l'intermédiaire de l'interface de ligne de commande

Vous pouvez vérifier la santé de l'agent déployé récemment à l'aide de la commande agent health. La commande utilise Agent ID comme entrée. La sortie affiche la liste des Kubernetes pertinents avec les noms de propriété de santé de l'agent, la valeur attendue, la valeur réelle et le résultat sous la forme PASS ou FAIL.

Exemple

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

Sortie

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

Exemple

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

Sortie

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

En outre, vous pouvez utiliser la Kubernetes CLI (kubectl) ou Kubernetes tableau de bord de votre cluster pour afficher l'état et les journaux des microservices liés à l'agent, pods, déploiement, configmap et Cluster bindings dans les espaces de noms schematics-agent-observe, schematics-sandbox, schematics-runtime et schematics-job-runtime.

Création d'un agent via l'API

Suivez les étapes pour créer un jeton d'accès IAM et vous authentifier auprès de Schematics via l'API. Pour plus d'informations, voir Création d'un agent à l'aide de l'API.

Exemple

  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"
    }
}

Vérifiez que la définition d'agent a été créée correctement, comme indiqué dans la sortie. Enregistrez l'ID agent à utiliser dans les commandes suivantes. Par exemple, agentb1-gsmforvpc.soA.115c.

Sortie

  {
      "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": {}
  }

A présent, exécutez l'API agent deploy avec agent ID pour créer l'espace de travail Schematics qui déploie l'agent. L'opération agent deploy démarre à la fois les opérations agent validate et agent deploy pour configurer l'agent.

Syntaxe

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

Exemple

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

Sortie

{
    "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"
}

Création d'un agent via Terraform

Pour créer le déploiement de l'agent Schematics à l'aide de Terraform, définissez la ressource ibm_schematics_agent_deploy dans votre fichier de configuration Terraform. Suivez les étapes suivantes pour créer l'agent « Schematics ». En option, vous pouvez vous référer au module terraform-ibm-schematics-agent pour le code de l'infrastructure et les exemples d'utilisation.

  1. Installer le CLI Terrafrom.

  2. Configurez le plug-in IBM Cloud Provider Plug-in for Terraform.

  3. Testez votre configuration.

  4. Définir la ressource ibm_schematics_agent dans le fichier 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"
    }
    

    Vous pouvez également utiliser le module Terraform IBM pour l'agent de schémas, comme indiqué :

    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. Initialisation

    terraform init
    
  6. Appliquer

    terraform apply
    
  7. Utilisez la ressource ibm_schematics_agent_deploy pour déployer un agent.

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

Vous pouvez consulter la IBM Cloud Provider Plug-in for Terraform pour plus de paramètres spécifiques à la ressource.

Note

Une fois le déploiement de l'agent terminé pour ca-mon, un état d'erreur s'affiche initialement. Pour résoudre ce problème, vous devez créer une passerelle d'extrémité privée virtuelle(VPE Gateway) pour la région Schematics private en ciblant le groupe de sécurité kube-vpeg-<cluster_IDxxxx> dans l'espace de noms schematics-runtime. Ce processus dure environ 5 minutes. Une fois le déploiement terminé, l'état du déploiement de l'agent devient complet.

Etapes suivantes

Le déploiement et la configuration d'un agent sont terminés.

  • Si vous utilisez une instance privée Git, établissez la connexion avec un agent au moyen d'un certificat. Pour plus d'informations, voir la procédure d'association d'un agent à connecter.
  • Pour la configuration et le provisionnement de votre infrastructure, reportez-vous aux politiques de l'agent. La règle d'agent est utilisée par Schematics pour router dynamiquement les travaux de téléchargement de référentiel Git, les travaux d'espace de travail ou Terraform et les travaux d'action ou Ansible vers un agent.
  • Gérez votre agent et votre Kubernetes.
  • Vous pouvez consulter la foire aux questions de l'agent pour connaître les questions courantes relatives aux agents.
  • Lorsque l'agent n'est plus nécessaire, il peut être supprimé en suivant les étapes de la rubrique Suppression d'un agent.