Agenten bereitstellen
Erstellen Sie eine Agentenregistrierung in der ausgewählten IBM Cloud® Schematics Region, um direkt in Ihrer Cloud-Infrastruktur im privaten Netzwerk oder in isolierten Netzwerkzonen zu arbeiten.
Führen Sie die Schritte zum Erstellen und Implementieren eines Agenten aus.
- Erstellen Sie eine Agentendefinition, um die Agentenimplementierung zu verwalten. Dieser Schritt initialisiert Schematics mit der Agentenkonfiguration, die zum Bereitstellen des Agenten an seiner Zielposition verwendet wird.
- Implementieren Sie den Agenten mithilfe der Befehle
ibmcloud schematics agent validateundibmcloud schematics agent deployder Befehlszeilenschnittstelle oder der entsprechenden APIs.
Vorbereitende Schritte
Überprüfen Sie die unter Agentenimplementierung vorbereiten beschriebenen Schritte und führen Sie sie aus. Nachdem Sie den Cluster, die Instanz IBM Cloud Object Storage und den Bucket IBM Cloud Object Storage erstellt haben, sammeln Sie die folgenden Informationen, um Ihren Agenten an seinem Zielort bereitzustellen.
-
Der Cluster IBM Cloud Object Storage und das Bucket IBM Cloud Object Storage werden in derselben Ressourcengruppe erstellt.
-
Notieren Sie die
cluster ID,cluster resource groupundregiondes Kubernetes Service-Clusters, den der Agent bereitstellt. -
Die
IBM Cloud® Object Storage instance name,IBM Cloud Object Storage bucket namedes Buckets Object Storage wird für die temporäre Agentendatenspeicherung verwendet. Die Ressourcengruppe und die Region der „ IBM Cloud Object Storage “-Instanz und des Buckets müssen mit denen des Clusters übereinstimmen. -
Optional - wenn Sie den Proxy-Server auf einen Agenten-Microservice aktualisieren müssen, lesen Sie Konfiguration von Schematics Agenten auf einen Proxy-Server.
-
Optional: Wenn Sie eine private Git instanz verwenden, müssen Sie die Verbindung zu einem Agenten über ein Zertifikat herstellen. Weitere Informationen finden Sie unter Schritte zum Zuordnen eines Agenten zu einer privaten Git Instanz.
Sie müssen sehen, dass sich
ClusterundIBM Cloud Object Storage instancein derselben Ressourcengruppe befinden.
Agentendefinition erstellen
- Melden Sie sich an der KonsoleIBM Cloud an.
- Klicken Sie auf das
im Menü > Plattformautomatisierung > Schematics > Erweiterungen > Agent erstellen.
- Im Abschnitt Agentendetails definieren:
- Geben Sie einen eindeutigen Agenten-Namen ein.
- Wählen Sie Ort und Ressourcengruppe aus der Dropdown-Liste.
- Geben Sie Tags und Beschreibung für den Agenten ein.
- Gehen Sie im Abschnitt Assign to cluster wie folgt vor:
- Wählen Sie den Service
IBM Cloud Kubernetes ServiceoderRed Hat OpenShiftaus. - Wählen Sie Ihren Clusternamen aus.
- COS-Instanz definieren
- Geben Sie den Namen der COS-Instanz ein
- Geben Sie die COS-Bucket-Name
- Geben Sie die COS-Bucketregion ein.
- Wählen Sie den Service
- Im Abschnitt Agentendetails definieren:
- Klicken Sie auf „ Definieren “.
- Klicken Sie auf Validieren, um den Cluster und die IBM Cloud Object Storage-Konfiguration zu validieren.
- Klicken Sie auf Implementieren, um einen Agenten bereitzustellen.
Erstellen einer Agentendefinition über CLI
Als ersten Schritt müssen Sie in Ihrem IBM Cloud Konto eine Agentendefinition mit der Konfiguration erstellen, die für die Bereitstellung des Agenten verwendet wird. Eine vollständige Liste der agent create-Optionen finden Sie unter
dem Befehl ibmcloud schematics agent create.
Wählen Sie die IBM Cloud Region aus, von der aus Sie Ihren Agenten definieren und verwalten möchten. Legen Sie den CLI-Regionsbefehl fest, indem Sie ibmcloud target -r <region> ausführen. Die Region muss dieselbe Region sein wie die im Befehl location angegebene Region agent create. Die IBM Cloud Object Storage-Bucketposition muss das Format eu-gb oder us-south aufweisen und kein Ortsname.
Beispielsyntax für agent create. Der Text zwischen < > muss Ihren Werten hinzugefügt werden:
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>
Ausgabe
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]
Zeichnen Sie die Agent ID zur Verwendung in nachfolgenden Befehlen auf. Zum Anzeigen der Agentendetails können Sie den Befehl "agent get" verwenden.
Beispiel
ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
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]
Überprüfung der Voraussetzungen für die Agentenbereitstellung über CLI
Sie können die Agentendefinition und die Clusterverfügbarkeit mit dem Befehl "agent validate" überprüfen. Die Validierung prüft die Voraussetzungen für die Infrastruktur des Zielagenten. Der Befehl verwendet die Agent ID als Eingabe, die vom Befehl agent create zurückgegeben wird. Die Ausgabe des Befehls agent validates zeigt die Liste der relevanten Kubernetes- und Agenteneigenschaftsnamen, den erwarteten Wert, den tatsächlichen Wert und das
Ergebnis als PASS oder FAIL an.
Beispiel
ibmcloud schematics agent validate --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
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
Beispiel
ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
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
Bereitstellen eines Agenten über CLI
Sie verwenden die Agentendefinition, um den Agenten mit dem Befehl agent deploy zu implementieren. Der Befehl agent deploy verwendet Agent ID als Eingabe. Sie können eine bestehende Bereitstellung mit der
Option force deploy aktualisieren.
Die Agentenimplementierung dauert einige Minuten.
ibmcloud schematics agent deploy --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
Initiating agent deploy...
Job ID .ACTIVITY.465e9716
Beispiel
ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
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
Überprüfung der Agentenbereitstellung über CLI
Sie können den Zustand des kürzlich implementierten Agenten mit dem Befehl agent health überprüfen. Der Befehl akzeptiert Agent ID als Eingabe. In der Ausgabe wird die Liste der relevanten Kubernetes mit den Namen der
Agentenstatuseigenschaften, dem erwarteten Wert, dem tatsächlichen Wert und dem Ergebnis als PASS oder FAIL angezeigt.
Beispiel
ibmcloud schematics agent health --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
Initiating agent health...
Job ID .ACTIVITY.f6f77588
Beispiel
ibmcloud schematics agent get --id agent-ga-prod-cli-jan-10.soA.cd1c
Ausgabe
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
Darüber hinaus können Sie das Kubernetes CLI (kubectl) oder Kubernetes Dashboard Ihres Clusters verwenden, um den Status und die Protokolle der agentenbezogenen Microservices anzuzeigen, Pods, Deployment, Configmap und Cluster-Bindings in den
Namespaces schematics-agent-observe, schematics-sandbox, schematics-runtime und schematics-job-runtime.
Erstellen eines Agenten über API
Führen Sie die Schritte aus, um ein IAM-Zugriffstoken zu erstellen und sich über die API mit Schematics zu authentifizieren. Weitere Informationen finden Sie unter Agenten erstellen mithilfe der API.
Beispiel
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"
}
}
Stellen Sie sicher, dass die Agentendefinition wie in der Ausgabe gezeigt erfolgreich erstellt wurde. Zeichnen Sie die Agenten-ID zur Verwendung in nachfolgenden Befehlen auf. Beispiel: agentb1-gsmforvpc.soA.115c.
Ausgabe
{
"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": {}
}
Führen Sie jetzt die API agent deploy mit dem agent ID aus, um den Arbeitsbereich Schematics zu erstellen, der den Agenten implementiert. Die Operation agent deploy startet die Operationen agent validate und agent deploy zum Einrichten des Agenten.
Syntax
PUT /v2/agents/<enter your agentID>/deploy HTTP/1.1
Host: schematics.cloud.ibm.com
Content-Type: application/json
Authorization: Bearer
Beispiel
PUT /v2/agents/agentb1-gsmforvpc.soA.115c/deploy HTTP/1.1
Host: schematics.cloud.ibm.com
Content-Type: application/json
Authorization: Bearer
Ausgabe
{
"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"
}
Erstellen eines Agenten mit Terraform
Um den Schematics Agent Einsatz mit Terraform zu erstellen, definieren Sie die ibm_schematics_agent_deploy Ressource in Ihrer Terraform Konfigurationsdatei. Führen Sie die folgenden Schritte aus, um den „ Schematics “-Agenten zu
erstellen. Optional können Sie das Modul terraform-ibm-schematics-agent für den zugehörigen Infrastrukturcode
und Anwendungsbeispiele verwenden.
-
Installieren Sie das Terrafrom CLI.
-
Definieren Sie die Ressource
ibm_schematics_agentin der Dateimain.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" }Oder verwenden Sie das Terraform IBM Modul für Schaltplanagenten, wie hier gezeigt:
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" } -
Initialize
terraform init -
Übernehmen
terraform apply -
Verwenden Sie die Ressource ibm_schematics_agent_deploy, um einen Agenten bereitzustellen.
resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { agent_id = "agent_id" }
Sie können in der IBM Cloud Provider Plug-in for Terraform dokumentation für weitere ressourcenspezifische Parameter.
Anmerkung
Nachdem die Bereitstellung des Agenten für ca-mon abgeschlossen ist, wird zunächst ein Fehlerstatus angezeigt. Um dieses Problem zu beheben, müssen Sie ein Virtual Private Endpoint Gateway(VPE-Gateway) für Schematics erstellen. private Region durch gezielte Ansprache der kube-vpeg-<cluster_IDxxxx> Sicherheitsgruppe in der schematics-runtime Namespace. Dieser Vorgang dauert etwa 5 Minuten. Sobald
der Vorgang abgeschlossen ist, ändert sich der Status des Agenteneinsatzes in "abgeschlossen".
Nächste Schritte
Die Implementierung und Konfiguration eines Agenten sind abgeschlossen.
- Wenn Sie eine private Git-Instanz verwenden, dann stellen Sie die Verbindung mit einem Agenten über ein Zertifikat her. Weitere Informationen finden Sie unter Schritte zum Zuordnen eines Agenten zur Verbindung.
- Wie Sie Ihre Infrastruktur konfigurieren und bereitstellen können, erfahren Sie unter Agent-Richtlinien. Die Agentenrichtlinie wird von Schematics verwendet, um die Git-Repository-Download-Jobs, Arbeitsbereich-oder Terraform-Jobs sowie Aktions-oder Ansible-Jobs dynamisch an einen Agenten weiterzuleiten.
- Verwalten Sie Ihren -Agenten und Ihren Kubernetes-Cluster.
- Häufig gestellte Fragen zu Agenten finden Sie in den häufig gestellten Fragen zum Agenten.
- Wenn der Agent nicht mehr benötigt wird, kann er wie im Abschnitt Agenten löschen beschrieben entfernt werden.