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.
- 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.
- Déployez l'agent à l'aide des commandes de l'interface de ligne de commande
ibmcloud schematics agent validateetibmcloud schematics agent deployou 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 groupetregiondu cluster Kubernetes Service que l'agent déploie. -
Le
IBM Cloud® Object Storage instance name,IBM Cloud Object Storage bucket namedu 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
ClusteretIBM Cloud Object Storage instancese trouvent dans le même groupe de ressources.
Création d'une définition d'agent
- Connectez-vous à la consoleIBM Cloud
- Cliquez sur l'
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 Serviceou le serviceRed 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
- Sélectionnez le
- Dans la section Définir les détails de l'agent:
- Cliquez sur « Définir ».
- Cliquez sur Valider pour valider la configuration du cluster et de IBM Cloud Object Storage.
- 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.
-
Installer le CLI Terrafrom.
-
Configurez le plug-in IBM Cloud Provider Plug-in for Terraform.
-
Définir la ressource
ibm_schematics_agentdans le fichiermain.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" } -
Initialisation
terraform init -
Appliquer
terraform apply -
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.