Arbeiten mit Agentenrichtlinien
Agentenrichtlinien (Zuweisung) teilen Schematics mit, welcher Agent für die Ausführung von Arbeitsbereichs-und Aktionsjobs in einer bestimmten Netzzone verwendet werden soll. Jedem Agenten ist mindestens eine Richtlinie zugeordnet, um den Arbeitsbereich und die Aktionsjobs anzugeben, die auf dem Agenten ausgeführt werden. Beispielsweise können Agenten in vorhanden sein und Jobs in den folgenden isolierten Zonen ausgeführt werden:
- Cloudregionen (region-1, region-2, region-3)
- VPC-Zonen für die Anwendungsschicht, Datenebene, Managementebene
- Cloud-Anbieter oder On-Premises
- Abteilungsbereiche in Ihrer Organisation wie
HR,Finance,Manufacturing
Einem Arbeitsbereich oder einer Aktion kann nur eine Richtlinie zugeordnet werden. Die Richtlinienerstellung schlägt fehl, wenn eine Richtlinie vorhanden ist, die auf dieselben Arbeitsbereiche oder Aktionen abzielt.
Sie können einen agent assignment policy mithilfe der Befehlszeilenschnittstelle Schematics -Richtlinienbefehle erstellen, aktualisieren
und löschen.
Die agent-assignment-policy für einen Agenten wird mithilfe der folgenden Attribute eines Arbeitsbereichs oder einer Aktion definiert: Die Auswahlattribute können eine Kombination der folgenden Flags sein:
tags-Arbeitsbereiche oder Aktionen mit übereinstimmenden Benutzertags werden ausgewählt.locations-Arbeitsbereiche oder Aktionen in der entsprechenden Schematics-Position sind ausgewählt.resource-groups-Arbeitsbereiche oder Aktionen mit der übereinstimmenden Ressourcengruppe werden ausgewählt
Wenn die Auswahlrichtlinie für agent-1 die Angabe „tags=“ vorsieht[dev] und „resource-group=“[rg-2], leitet „ Schematics “ automatisch Workspace-Jobs – einschließlich „ Git “-Downloads sowie „Terraform“-Jobs
zum Planen, Anwenden und Löschen – für alle Workspaces, die den Kriterien „ tags “ und „ resource-group “ entsprechen, zur Ausführung an „ agent-1 “ weiter.
Erstellen einer Agentenrichtlinie über die Benutzeroberfläche
- Melden Sie sich an der KonsoleIBM Cloud an.
- Klicken Sie auf das
im Menü > Plattformautomatisierung > Schematics > Erweiterungen > Registerkarte Richtlinien > Richtlinie erstellen.
- Im Abschnitt Richtlinie erstellen:
- Geben Sie die eindeutige Name der Richtlinie ein.
- Beschreibung eingeben.
- Wählen Sie Richtlinientyp als Agentenzuordnungsrichtlinie aus.
- Wählen Sie in der Dropdown-Liste Position und Ressourcengruppe aus.
- Geben Sie Tags für den Agenten ein.
- Klicken Sie auf Weiter.
- Im Abschnitt Richtlinienparameter:
- Wählen Sie Ihren Agenten aus der Dropdown-Liste aus.
- Im Abschnitt Richtlinienattribute definieren.
- Wählen Sie Objekttyp als
workspaceoderactionaus. - Wählen Sie Ressourcengruppe aus.
- Wählen Sie Objektposition aus.
- Geben Sie Object tags ein.
- Klicken Sie auf Weiter.
- Wählen Sie Objekttyp als
- Gehen Sie im Abschnitt Richtlinienvorschau wie folgt vor:
- Wählen Sie die Arbeitsbereiche aus, die Teil Ihrer Richtlinie sein sollen.
- Im Abschnitt Richtlinie erstellen:
- Klicken Sie auf Erstellen.
Alle Richtlinien über die Benutzerschnittstelle auflisten
- Melden Sie sich an der KonsoleIBM Cloud an.
- Klicken Sie auf das
im Menü > Plattformautomatisierung > Schematics > Erweiterungen > Registerkarte " Richtlinien".
Richtlinie über die Benutzerschnittstelle anzeigen
- Melden Sie sich an der KonsoleIBM Cloud an.
- Klicken Sie auf das
im Menü > Plattformautomatisierung > Schematics > Erweiterungen > Registerkarte " Richtlinien".
- Klicken Sie in der Liste auf Ihre Richtlinie, um die Richtliniendetails anzuzeigen.
- Klicken Sie im Fenster Zugeordneter Agent auf Agentendetails, um Ihre Agentenkonfigurationen anzuzeigen.
Agentenrichtlinie über die Benutzerschnittstelle aktualisieren
Sie können eine Agentenrichtlinie aktualisieren, um die Auswahltags oder die Beschreibung zu ändern, indem Sie mit AGENT_ID auf den Agenten verweisen.
- Melden Sie sich an der KonsoleIBM Cloud an.
- Klicken Sie auf das
im Menü > Plattformautomatisierung > Schematics > Erweiterungen > Registerkarte " Richtlinien".
- Klicken Sie in der Liste auf Ihre Richtlinie, um die Richtliniendetails anzuzeigen.
- Klicken Sie auf Aktionen > Richtlinie bearbeiten, um die Parameter zu aktualisieren.
Eine Richtlinie über die Benutzeroberfläche löschen
- Melden Sie sich an der KonsoleIBM Cloud an.
- Klicken Sie auf das
im Menü > Plattformautomatisierung > Schematics > Erweiterungen > Registerkarte " Richtlinien".
- Klicken Sie in der Liste auf Ihre Richtlinie, um die Richtliniendetails anzuzeigen.
- Klicken Sie auf Aktionen > Richtlinie löschen, um die Parameter zu löschen.
Erstellen einer Agent-Richtlinie über die CLI
Erstellen Sie Ihre Agentenrichtlinie über die Befehlszeilenschnittstelle. Eine vollständige Liste der Optionen für Agentenrichtlinien finden Sie in der Dokumentation zu den Richtlinienbefehlen.
Vorbereitende Schritte:
- Installieren oder aktualisieren Sie die Version des Schematics-Plug-ins auf
1.12.12oder höher. - Wählen Sie die IBM Cloud-Region aus, in der der Agent definiert ist. Legen Sie die CLI-Region fest, indem Sie den Befehl
ibmcloud target -r <region>ausführen. - Agentenrichtliniendatei erstellen
Eine JSON-Richtliniendatei definieren
Hier wird eine JSON-Beispielrichtliniendatei bereitgestellt. Ersetzen Sie die Platzhalter <...> durch Ihre tatsächlichen Werte.
- Die Agentenjobs, auf denen ausgeführt werden sollen, werden mithilfe des Blocks
targetdefiniert. - Die Attribute zur Auswahl des Arbeitsbereichs oder der Aktionen, die auf dem Agenten ausgeführt werden, werden durch den Block
parameterdefiniert.
JSON-Richtliniendateien können in einem beliebigen Editor oder IDE bearbeitet werden. Sie müssen gültiges JSON sein.
Syntax der JSON-Richtliniendatei:
{
"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>"
]
}]
}
}
}
Beispiel
{
"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"
]
}]
}
}
}
Agentenrichtlinie erstellen
Beispiel
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
Ausgabe
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
Alle Richtlinien über die CLI auflisten
Sie können die Liste der in Ihrem Konto definierten Richtlinien mit dem Befehl policy list anzeigen.
Beispiel
ibmcloud schematics policy list
Ausgabe
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
Richtlinie über die Befehlszeilenschnittstelle anzeigen
Sie können die Konfiguration einer Agentenrichtlinie mit dem Befehl policy get anzeigen.
Beispiel
ibmcloud schematics policy get agent-policy-testing-cli-jan-10.deP.c737
Ausgabe
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
Agentenrichtlinie über die Befehlszeilenschnittstelle aktualisieren
Sie können eine Agentenrichtlinie aktualisieren, um die Auswahltags oder Beschreibung zu ändern, indem Sie mit dem Eingabeargument AGENT_ID auf den Agenten verweisen.
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
Rufen Sie nach der Aktualisierung die Richtlinie ab, um die Änderungen zu bestätigen.
Beispiel
ibmcloud schematics policy get --id agent-policy-testing-cli-jan-10.deP.c737
Ausgabe
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
Eine Richtlinie über die Befehlszeilenschnittstelle löschen
Sie können eine Richtlinie löschen und das Eingabeargument AGENT_ID übergeben.
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...
Erstellung von Agentenrichtlinien mit der API
Befolgen Sie die Schritte, um Ihren IAM Zugriffstoken abzurufen und authentifizieren Sie mit IBM Cloud Schematics mit der API. Weitere Informationen zur API für Agentenrichtlinien finden Sie im Abschnitt zum Jobstatus APIs für Agentenrichtlinien.
Beispiel für die Erstellung einer Richtlinie mit der 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"
]
}
]
}
}
}
Beispiel für das Abrufen einer Richtlinie über die 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>
Beispiel für die Aktualisierung einer Richtlinie über die 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"
]
}
]
}
}
}
Beispiel für die Suche nach Richtlinien mit der 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"
}
Sie können den Agenten jetzt verwenden, um Schematics Terraform-oder Ansible-Jobs auszuführen. Der Agent führt alle Jobs für Arbeitsbereiche oder Aktionen aus, die den definierten Auswahlrichtlinienparametern entsprechen:
- Ressourcengruppe
- Standort
- Tags
Beachten Sie, dass Tags beim Erstellen des Arbeitsbereichs oder der Aktion festgelegt werden müssen. Änderungen an Tags, die über die Benutzeroberfläche von „ Schematics “ vorgenommen werden, werden bei der Richtlinienauswertung nicht erkannt oder berücksichtigt.
Nach der Ausführung enthalten die Arbeitsbereichs-oder Aktionsjobprotokolle einen Header, der den Agenten angibt, auf dem der Job ausgeführt wurde.
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 ---
Nächste Schritte
Häufig gestellte Fragen zu einem Agenten finden Sie in den häufig gestellten Fragen zum Agenten.
Wenn der Agent nicht mehr erforderlich ist, kann er nach den Schritten in Agenten löschen entfernt werden.