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

  1. Accedere alla consoleIBM Cloud.
  2. Fare clic sull'icona Menu icona hamburger > 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 workspace o action.
        • Selezionare " Gruppo di risorse ".
        • Selezionare Ubicazione oggetto.
        • Immettere Tag oggetto.
        • Fai clic su Next.
      • Nella sezione Anteprima politica:
        • Selezionare le aree di lavoro che devono far parte della politica.
  3. Fai clic su Crea.

Elenco di tutte le politiche utilizzando l'interfaccia utente

  1. Accedere alla consoleIBM Cloud.
  2. Fare clic sull'icona del menu a forma di hamburger > Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.

Visualizzazione di una politica mediante la UI

  1. Accedere alla consoleIBM Cloud.
  2. Fare clic sull'icona del menu a forma di hamburger > Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
  3. Fare clic sulla politica dall'elenco per visualizzarne i dettagli.
  4. 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.

  1. Accedere alla consoleIBM Cloud.
  2. Fare clic sull'icona del menu a forma di hamburger > Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
  3. Fare clic sulla politica dall'elenco per visualizzarne i dettagli.
  4. Fare clic su Azioni > Modifica politica per aggiornare i parametri.

Eliminazione di una politica mediante la UI

  1. Accedere alla consoleIBM Cloud.
  2. Fare clic sull'icona del menu a forma di hamburger > Automazione della piattaforma > Schematics > Estensioni > scheda Criteri.
  3. Fare clic sulla politica dall'elenco per visualizzarne i dettagli.
  4. 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.12 o 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 -----  New Workspace Action  -----
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.