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.

  1. 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.
  2. Implementieren Sie den Agenten mithilfe der Befehle ibmcloud schematics agent validate und ibmcloud schematics agent deploy der 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 group und region des Kubernetes Service-Clusters, den der Agent bereitstellt.

  • Die IBM Cloud® Object Storage instance name, IBM Cloud Object Storage bucket name des 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 Cluster und IBM Cloud Object Storage instance in derselben Ressourcengruppe befinden.

Agentendefinition erstellen

  1. Melden Sie sich an der KonsoleIBM Cloud an.
  2. Klicken Sie auf das Hamburger-Symbol 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 Service oder Red Hat OpenShift aus.
      • 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.
  3. Klicken Sie auf „ Definieren “.
  4. Klicken Sie auf Validieren, um den Cluster und die IBM Cloud Object Storage-Konfiguration zu validieren.
  5. 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.

  1. Installieren Sie das Terrafrom CLI.

  2. Konfigurieren Sie IBM Cloud Provider Plug-in for Terraform.

  3. Testen Sie Ihre Konfiguration.

  4. Definieren Sie die Ressource ibm_schematics_agent in der Datei 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"
    }
    

    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"
    }
    
  5. Initialize

    terraform init
    
  6. Übernehmen

    terraform apply
    
  7. 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.