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.
- 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.
- Distribuisci l'agent utilizzando i comandi della CLI
ibmcloud schematics agent validateeibmcloud schematics agent deployo 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 grouperegiondel Kubernetes Service che l'agent distribuisce. -
Il
IBM Cloud® Object Storage instance name,IBM Cloud Object Storage bucket namedel 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
ClustereIBM Cloud Object Storage instancesi trovano nello stesso gruppo di risorse.
Creazione di una definizione di agent
- Accedere alla consoleIBM Cloud.
- 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 ServiceoRed 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
- Seleziona il servizio
- Nella sezione Definisci dettagli agent:
- Fare clic su Definisci.
- Fai clic su Convalida per convalidare il cluster e la configurazione IBM Cloud Object Storage.
- 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.
-
Installare Terrafrom CLI.
-
Configurare il plug-in IBM Cloud Provider Plug-in for Terraform.
-
Definire la risorsa
ibm_schematics_agentnel filemain.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" } -
Inizializza
terraform init -
Applica
terraform apply -
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.