Lavorare con le politiche degli agenti
Le politiche di agent (assegnazione) indicano a Schematics quale agent utilizzare per eseguire i lavori di spazio di lavoro e azione in una specifica zona di rete. A ciascun agent sono associate una o più politiche per identificare lo spazio di lavoro e i lavori di azione eseguiti sull'agent. Ad esempio, gli agent possono esistere e i lavori possono essere eseguiti nelle seguenti zone isolate:
- regioni cloud (region-1, region-2, region-3)
- Zone VPC per il livello di applicazione, il livello di dati e il livello di gestione
- cloud - fornitori o on-premise
- aree dipartimentali della vostra organizzazione, quali
HR,Finance,Manufacturing
Solo una singola politica può essere associata a un'area di lavoro o a un'azione. La creazione della politica ha esito negativo se esiste una politica che si rivolge agli stessi spazi di lavoro o azioni.
Puoi creare, aggiornare ed eliminare un agent assignment policy utilizzando la CLI Schematics comandi della politica.
Il agent-assignment-policy per un agent viene definito utilizzando i seguenti attributi di un'area di lavoro o di un'azione. Gli attributi di scelta possono essere una combinazione dei seguenti indicatori:
tags- vengono selezionati spazi di lavoro o azioni con tag utente corrispondenti.locations- vengono selezionati gli spazi di lavoro o le azioni nell'ubicazione Schematics corrispondente.resource-groups- vengono selezionati spazi di lavoro o azioni con il gruppo di risorse corrispondente.
Se la politica di selezione per agent-1 specifica tags=[dev] e resource-group=[rg-2], Schematics instrada automaticamente i lavori dell’area di lavoro, inclusi i lavori di download di Git, i lavori di pianificazione,
applicazione e distruzione di Terraform per tutte le aree di lavoro che soddisfano i criteri tags e resource-group, affinché vengano eseguiti su agent-1.
Creazione di una politica dell'agent utilizzando l'interfaccia utente
- Accedere alla consoleIBM Cloud.
- Fare clic sull'icona Menu
> Automazione piattaforma > Schematics > Estensioni > scheda Criteri > Crea criterio.
- Nella sezione Crea una politica:
- Inserisci l'Nome della politica e univoco.
- Inserisci la descrizione.
- Selezionare Tipo di politica come politica di assegnazione agent.
- Selezionare Posizione e Gruppo di risorse dall'opzione a discesa.
- Immettere Tag per l'agent.
- Fai clic su Next.
- Nella sezione Parametri della politica:
- Seleziona il tuo " Agente " dall'elenco a discesa.
- Nella sezione Definisci attributi della politica.
- Selezionare Tipo di oggetto come
workspaceoaction. - Selezionare " Gruppo di risorse ".
- Selezionare Ubicazione oggetto.
- Immettere Tag oggetto.
- Fai clic su Next.
- Selezionare Tipo di oggetto come
- Nella sezione Anteprima politica:
- Selezionare le aree di lavoro che devono far parte della politica.
- Nella sezione Crea una politica:
- Fai clic su Crea.
Elenco di tutte le politiche utilizzando l'interfaccia utente
- Accedere alla consoleIBM Cloud.
- Fare clic sull'icona del menu
> Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
Visualizzazione di una politica mediante la UI
- Accedere alla consoleIBM Cloud.
- Fare clic sull'icona del menu
> Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
- Fare clic sulla politica dall'elenco per visualizzarne i dettagli.
- Nella finestra Agent assegnato, fare clic su Dettagli agent per visualizzare le configurazioni dell'agent.
Aggiornamento di una politica dell'agent utilizzando l'interfaccia utente
È possibile aggiornare una politica dell'agent per modificare le tag di selezione o la descrizione, facendo riferimento all'agent con AGENT_ID.
- Accedere alla consoleIBM Cloud.
- Fare clic sull'icona del menu
> Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
- Fare clic sulla politica dall'elenco per visualizzarne i dettagli.
- Fare clic su Azioni > Modifica politica per aggiornare i parametri.
Eliminazione di una politica mediante la UI
- Accedere alla consoleIBM Cloud.
- Fare clic sull'icona del menu
> Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
- Fare clic sulla politica dall'elenco per visualizzarne i dettagli.
- Fare clic su Azioni > Elimina politica per eliminare i parametri.
Creazione di una politica dell'agent utilizzando la CLI
Creare la propria politica agent utilizzando la CLI. Per l'elenco completo delle opzioni della politica dell'agente, consultare la documentazione Comandi della politica.
Prima di cominciare:
- Installare o aggiornare la versione di Plug-in Schematics in modo che sia
1.12.12o successiva. - Seleziona la regione IBM Cloud in cui è definito l'agent. Imposta la regione CLI eseguendo il comando
ibmcloud target -r <region>. - Crea un file di politica agente
Definizione di un file della politica JSON
Qui viene fornito un file di politica JSON di esempio. Sostituire i segnaposto <...> con i valori effettivi.
- I lavori dell'agent su cui eseguire l'esecuzione vengono definiti utilizzando il blocco
target. - Gli attributi per selezionare lo spazio di lavoro o le azioni da eseguire sull'agent sono definiti dal blocco
parameter.
I file JSON della politica possono essere modificati in qualsiasi editor o IDE. Devono essere file JSON validi.
Sintassi del file JSON della politica
{
"target": {
"selector_kind": "ids",
"selector_ids": [
"<agent id>"
]
},
"parameter": {
"agent_assignment_policy_parameter": {
"selector_kind": "scoped",
"selector_scope": [{
"kind": "workspace",
"tags": [
"<user_tag>"
],
"resource_groups": [
"<resource_group>"
],
"locations": [
"<region>"
]
}]
}
}
}
Esempio
{
"target": {
"selector_kind": "ids",
"selector_ids": [
"agent-prod-live.deA.e055"
]
},
"parameter": {
"agent_assignment_policy_parameter": {
"selector_kind": "scoped",
"selector_scope": [{
"kind": "workspace",
"tags": [
"live-prod"
],
"resource_groups": [
"Default"
],
"locations": [
"eu-de"
]
}]
}
}
}
Crea politica agent
Esempio
ibmcloud schematics policy create --name agent-policy-testing-cli-jan-10 --kind agent_assignment_policy --location eu-de --resource-group Default --target-file policy.json
Output
Creating policy...
ID agent-policy-testing-cli-jan-10.deP.c737
Name agent-policy-testing-cli-jan-10-27
Description
Kind agent_assignment_policy
Location eu-de
Resource Group aac37f57b20142dba1a435c70aeb12df
Target
Tags [TAGS]
- workspace-policy:prod
Elenco di tutte le politiche utilizzando la CLI
È possibile visualizzare l'elenco di politiche definito nell'account utilizzando il comando policy list.
Esempio
ibmcloud schematics policy list
Output
Retrieving policies...
OK
Name ID Description Kind Tags
agent-policy-testing-cli-jan-10 agent-policy-testing-cli-jan-10.deP.c737 workspace-policy:prod
policy-023e7204-c33d-49b8-a9f3-695ff085290d policy-023e7204-c33d-49b8-a9f3-695ff085290d.gbP.8b3c Created agent-assignment-policy for the ...
policy-067dfb28-928b-4e90-ad2b-9d26343a1ceb policy-067dfb28-928b-4e90-ad2b-9d26343a1ceb.deP.796d Created agent-assignment-policy for
Showing 1-3 of 3 items
Visualizzazione di una politica utilizzando la CLI
È possibile visualizzare la configurazione di una politica agent con il comando policy get.
Esempio
ibmcloud schematics policy get agent-policy-testing-cli-jan-10.deP.c737
Output
Retrieving policy...
ID agent-policy-testing-cli-jan-10.deP.c737
Name agent-policy-testing-cli-jan-10
Description
Kind agent_assignment_policy
Location eu-de
Resource Group aac37f57b20142dba1a435c70aeb12df
Target
Tags [TAGS]
- workspace-policy:prod
Aggiornamento di una politica dell'agent utilizzando la CLI
È possibile aggiornare una politica dell'agent per modificare le tag di selezione, o la descrizione, facendo riferimento all'agent con l'argomento di input AGENT_ID.
ibmcloud schematics policy update --id agent-policy-testing-cli-jan-10.deP.c737 --kind agent_assignment_policy --resource-group Default --tags workspace-policy:prod --description testing-policy-cli --tags jobtag
Updating policy...
ID agent-policy-testing-cli-jan-10.deP.c737
Name agent-policy-testing-cli-jan-10
Description testing-policy-cli
Kind agent_assignment_policy
Location eu-de
Resource Group Default
Target
Tags [TAGS]
- workspace-policy:prod
- jobtag
Dopo l'aggiornamento, richiamare la politica per confermare le modifiche.
Esempio
ibmcloud schematics policy get --id agent-policy-testing-cli-jan-10.deP.c737
Output
Retrieving policy...
ID agent-policy-testing-cli-jan-10.deP.c737
Name agent-policy-testing-cli-jan-10
Description testing-policy-cli
Kind agent_assignment_policy
Location eu-de
Resource Group Default
Target
Tags [TAGS]
- workspace-policy:prod
- jobtag
Eliminazione di una politica utilizzando la CLI
È possibile eliminare una politica, passando l'argomento di input AGENT_ID.
ibmcloud schematics policy delete --id agent-policy-testing-cli-jan-10.deP.c737
Do you really want to delete the policy? [y/N]> y
Initiating policy delete...
Creazione della politica dell'agent utilizzando l'API
Segui i passaggi indicati per recuperare il tuo token di accesso IAM ed effettuare l'autenticazione su IBM Cloud Schematics tramite l'API. Per ulteriori informazioni sull'API della politica agent, consultare lo stato del lavoro API della politica agent.
Esempio per creare una politica utilizzando l'API
POST /v2/settings/policies HTTP/1.1
Host: schematics.cloud.ibm.com
Content-Type: application/json
Authorization: Bearer <auth_token>
{
"name": "policy-1",
"description": "Policy for job execution of secured workspaces on agent1",
"resource_group": "Default",
"tags": [
"policy:secured-job"
],
"location": "us-south",
"kind": "agent_assignment_policy",
"target": {
"selector_kind": "ids",
"selector_ids": [
"agent5.8442"
]
},
"parameter": {
"agent_assignment_policy_parameter": {
"selector_kind": "scoped",
"selector_scope": [
{
"kind": "workspace",
"tags": [
"env:dev",
"k8s"
],
"resource_groups": [
"test"
],
"locations": [
"us-south"
]
}
]
}
}
}
Esempio per ottenere una politica utilizzando l'API
GET /v2/settings/policies/<your policy_id> HTTP/1.1
Host: schematics.cloud.ibm.com
Content-Type: application/json
X-ENABLE-POLICIES: true
Authorization: Bearer <auth_token>
Esempio per aggiornare una politica utilizzando l'API
PATCH /v2/settings/policies/<your policy_id> HTTP/1.1
Host: schematics.cloud.ibm.com
Content-Type: application/json
X-ENABLE-POLICIES: true
Authorization: Bearer <auth_token>
{
"name": "policy-1",
"description": "updated Policy for job execution of secured workspaces on agent1",
"resource_group": "Default",
"tags": [
"policy:secured-job"
],
"location": "us-south",
"kind": "agent_assignment_policy",
"target": {
"selector_kind": "ids",
"selector_ids": [
"agent5.13a6"
]
},
"parameter": {
"agent_assignment_policy_parameter": {
"selector_kind": "scoped",
"selector_scope": [
{
"kind": "action",
"tags": [
"env:dev",
"k8s"
],
"resource_groups": [
"dummy_resource_group"
],
"locations": [
"us-south"
]
}
]
}
}
}
Esempio per trovare le politiche utilizzando l'API
POST /v2/settings/policies/search HTTP/1.1
Host: schematics.cloud.ibm.com
Content-Type: application/json
Authorization: Bearer <auth_token>
{
"parameter": {
"kind": "workspace",
"tags": [
"env:dev",
"k8s"
],
"resource_groups": [
"test"
],
"locations": [
"us-south"
]
},
"target": "action"
}
Puoi ora utilizzare l'agente per eseguire i lavori Schematics Terraform o Ansible. L'agent esegue tutti i lavori per le aree di lavoro o le azioni che corrispondono ai parametri della politica di selezione definita:
- gruppo di risorse
- ubicazione
- tag
Nota ora, i tag devono essere impostati al momento dello spazio di lavoro o dell'azione di creazione. Eventuali modifiche ai tag effettuate tramite l'interfaccia utente di Schematics non vengono rilevate né prese in considerazione durante la valutazione delle policy.
Dopo l'esecuzione, i log del lavoro dell'azione o dello spazio di lavoro contengono un'intestazione che indica l'agent su cui è stato eseguito il lavoro.
2023/04/08 15:22:07 [1m----- New Workspace Action -----[21m[0m
2023/04/08 15:22:07 Request: activitId=e3fcfdfdb13b07a1c60176e4b95c41ba, account=, owner=steve_strutt@uk.ibm.com, requestID=0a8a3428-b461-4dd0-8104-e859d68d35f6, OrchestratorID=orchestrator-5c8585dc74-6z9s5, agentID=agent-test-da.deA.e055, agentName=agent-test-da, jobRunnerID=jobrunner-5d99b5cfb7-p5xcz
2023/04/08 15:22:07 Related Workspace: name=myworkspace, agentID=agent-test-da.deA.e055 sourcerelease=(not specified), sourceurl=https://github.com/stevestrutt/multitier-vpc-bastion-host, branch=(not specified), folder=.
2023/04/08 15:22:07 --- Ready to execute the command on Agent agent-test-da.deA.e055 ---
Passi successivi
Puoi controllare le FAQ dell'agent per eventuali domande comuni correlate a un agent.
Quando l'agent non è più richiesto, è possibile rimuoverlo seguendo la procedura in elimina un agent.