Distribuzione di agent

Creare la registrazione di un agente nella regione IBM Cloud® Schematics selezionata per lavorare direttamente nella vostra infrastruttura cloud su rete privata o in zone di rete isolate.

Seguire la procedura per creare e distribuire un agente.

  1. Creare una definizione agent per gestire la distribuzione agent. Questo passo inizializza Schematics con la configurazione dell'agent utilizzata per distribuire il tuo agent nella relativa posizione di destinazione.
  2. Distribuisci l'agent utilizzando i comandi della CLI ibmcloud schematics agent validate e ibmcloud schematics agent deploy o le API corrispondenti.

Prima di iniziare

Esaminare e completare la procedura descritta in Preparazione per la distribuzione dell'agente. Dopo la creazione del cluster, dell'istanza IBM Cloud Object Storage e del bucket IBM Cloud Object Storage, raccogliere le seguenti informazioni come input per distribuire l'agente nella posizione di destinazione.

  • Il cluster, l'istanza IBM Cloud Object Storage e il bucket IBM Cloud Object Storage vengono creati nello stesso gruppo di risorse.

  • Registra il cluster cluster ID, cluster resource group e region del Kubernetes Service che l'agent distribuisce.

  • Il IBM Cloud® Object Storage instance name, IBM Cloud Object Storage bucket name del bucket Object Storage è utilizzato per l'archivio dati temporaneo dell'agent. Il gruppo di risorse e la regione dell'istanza e del bucket di IBM Cloud Object Storage devono corrispondere a quelli del cluster.

  • Opzionale - se è necessario aggiornare il server proxy a un microservizio agente, fare riferimento a configurazione degli agenti Schematics a un server proxy.

  • Facoltativo - se stai utilizzando un'istanza Git privata, devi stabilire la connessione con un agent tramite un certificato. Per ulteriori informazioni, vedi passi per associare un agent all'istanza Git privata.

    Devi vedere che Cluster e IBM Cloud Object Storage instance si trovano nello stesso gruppo di risorse.

Creazione di una definizione di agent

  1. Accedere alla consoleIBM Cloud.
  2. Fare clic sull'icona Menu > Automazione piattaforma > Schematics > Estensioni > Crea agente.
    • Nella sezione Definisci dettagli agent:
      • Inserisci un indirizzo Nome dell'agente univoco.
      • Selezionare Location e Resource group dall'opzione a discesa.
      • Immettere Tag e Descrizione per l'agente.
    • Nella sezione Assegna al cluster:
      • Seleziona il servizio IBM Cloud Kubernetes Service o Red Hat OpenShift.
      • Seleziona il tuo nome cluster.
      • In Definisci istanza COS
        • Inserisci il nome dell'istanza COS
        • Inserisci il nome del bucket COS
        • Immetti la regione bucket COS
  3. Fare clic su Definisci.
  4. Fai clic su Convalida per convalidare il cluster e la configurazione IBM Cloud Object Storage.
  5. Fare clic su Distribuisci per distribuire un agente.

Creazione di una definizione di agente tramite CLI

Come primo passo, è necessario creare una definizione di agente nell'account IBM Cloud, con la configurazione utilizzata per distribuire l'agente. Per un elenco completo di opzioni agent create, vedi il comando ibmcloud schematics agent create.

Selezionare la regione IBM Cloud da cui si desidera definire e gestire l'agente. Imposta il comando della regione CLI eseguendo ibmcloud target -r <region>. La regione deve essere la stessa del comando location specificato nel comando agent create. L'ubicazione del bucket IBM Cloud Object Storage deve essere nel formato eu-gb o us-south e non un nome città.

Esempio di sintassi agent create. Il testo tra < > deve essere aggiunto con i tuoi valori:

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>

Output

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]

Registrare il Agent ID per utilizzarlo nei comandi successivi. Per visualizzare i dettagli dell'agent, è possibile utilizzare il comando get dell'agent.

Esempio

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

Output

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]

Verifica dei prerequisiti per la distribuzione dell'agente tramite CLI

È possibile controllare la definizione dell'agent e la disponibilità del cluster utilizzando il comando di convalida dell'agent. La convalida esegue un controllo dei prerequisiti dell'infrastruttura dell'agente di destinazione. Il comando utilizza Agent ID come input restituito dal comando agent create. L'output del comando agent validates visualizza l'elenco dei nomi delle proprietà rilevanti di Kubernetes e dell'agente, il valore atteso, il valore effettivo e il risultato come PASS o FAIL.

Esempio

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

Output

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

Esempio

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

Output

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

Distribuzione di un agente tramite CLI

Utilizzare la definizione dell'agent per distribuire l'agent con il comando agent deploy. Il comando agent deploy utilizza Agent ID come input. È possibile aggiornare una distribuzione esistente utilizzando l'opzione force deploy.

Il completamento della distribuzione dell'agent richiede alcuni minuti.

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

Output

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

Esempio

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

Output

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

Verifica della distribuzione dell'agente tramite CLI

È possibile verificare lo stato dell'agent distribuito di recente utilizzando il comando agent health. Il comando utilizza Agent ID come input. L'output visualizza l'elenco di Kubernetes pertinenti con i nomi delle proprietà di integrità dell'agent, il valore previsto, il valore effettivo e il risultato come PASS o FAIL.

Esempio

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

Output

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

Esempio

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

Output

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

Inoltre, è possibile utilizzare la Kubernetes CLI (kubectl) o Kubernetes dashboard del cluster per visualizzare lo stato e i log dei microservizi legati agli agenti, pod, deployment, configmap e binding del cluster nei namespace schematics-agent-observe, schematics-sandbox, schematics-runtime e schematics-job-runtime.

Creare un agente tramite API

Segui i passi per creare un token di accesso IAM e autenticarti con Schematics tramite l'API. Per ulteriori informazioni, vedi Crea un agent utilizzando l'API.

Esempio

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

Accertarsi che la definizione dell'agent sia stata creata correttamente, come mostrato nell'output. Registrare l'ID agent da utilizzare nei comandi successivi. Ad esempio, agentb1-gsmforvpc.soA.115c.

Output

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

Ora, esegui l'API agent deploy con agent ID per creare lo spazio di lavoro Schematics che distribuisce l'agent. L'operazione agent deploy avvia le operazioni agent validate e agent deploy per configurare l'agente.

Sintassi

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

Esempio

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

Output

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

Creare un agente tramite Terraform

Per creare la distribuzione dell'agente Schematics usando Terraform, definire la risorsa ibm_schematics_agent_deploy nel file di configurazione di Terraform. Seguire i passaggi riportati di seguito per creare l'agente " Schematics ". Facoltativamente, si può fare riferimento al modulo terraform-ibm-schematics-agent per il codice dell'infrastruttura e gli esempi di utilizzo.

  1. Installare Terrafrom CLI.

  2. Configurare il plug-in IBM Cloud Provider Plug-in for Terraform.

  3. Testate la vostra configurazione.

  4. Definire la risorsa ibm_schematics_agent nel file 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"
    }
    

    Oppure utilizzare il modulo Terraform IBM per l'agente schematico, come mostrato:

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

    terraform init
    
  6. Applica

    terraform apply
    
  7. Utilizzare la risorsa ibm_schematics_agent_deploy per distribuire un agente.

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

È possibile consultare la IBM Cloud Provider Plug-in for Terraform per ulteriori parametri specifici della risorsa.

Nota

Una volta completata la distribuzione dell'agente per ca-mon, inizialmente verrà visualizzato uno stato di errore. Per risolvere questo problema, è necessario creare un Virtual Private Endpoint Gateway(VPE Gateway) per la regione Schematics private puntando al gruppo di sicurezza kube-vpeg-<cluster_IDxxxx> nello spazio dei nomi schematics-runtime. Questo processo richiede circa 5 minuti. Una volta completato, lo stato di distribuzione dell'agente passa a completo.

Passi successivi

La distribuzione e la configurazione di un agent sono complete.

  • Se si utilizza un'istanza Git privata, si deve stabilire la connessione con un agente tramite certificato. Per ulteriori informazioni, consultare passi per associare un agente alla connessione.
  • Per la configurazione e il provisioning dell'infrastruttura, fare riferimento a politiche dell'agente. La politica agent viene utilizzata da Schematics per instradare dinamicamente i lavori di download del repository Git, i lavori Workspace o Terraform e i lavori Action o Ansible a un agent.
  • Gestisci il tuo agent e il Kubernetes.
  • Puoi controllare le FAQ dell'agente per qualsiasi domanda comune relativa agli agenti.
  • Quando l'agent non è più necessario, è possibile rimuoverlo seguendo la procedura in elimina un agent.