Integration mit der ServiceNow-Änderungsverwaltung
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Azure Pipelines unterstützt die Integration mit ServiceNow, um die Zusammenarbeit zwischen Entwicklungs- und IT-Teams zu verbessern. Durch die Einbindung der Änderungsverwaltung in Releasepipelines können Teams die mit Änderungen verbundenen Risiken verringern und Dienstverwaltungsmethoden wie ITIL befolgen und gleichzeitig Azure Pipelines in vollem Umfang nutzen.
In diesem Artikel lernen Sie Folgendes:
- Konfigurieren sie ServiceNow-Instanzen.
- Schließen Sie den ServiceNow-Änderungsverwaltungsprozess als Releasegate ein.
- Überwachen des Änderungsverwaltungsprozesses über Releasepipelines
- Halten Sie ServiceNow-Änderungsanforderungen mit Bereitstellungsergebnissen auf dem neuesten Stand.
Voraussetzungen
Dieses Tutorial erweitert die Themen Verwenden von Genehmigungen und Gates und Definieren von Genehmigungen und Überprüfungen.
Eine Azure DevOps-Organisation. Erstellen Sie eine Organisation, wenn Sie noch keine haben.
Ein Nicht-Entwickler-instance von ServiceNow.
Konfigurieren des ServiceNow-instance
Installieren Sie die Azure Pipelines-Erweiterung auf Ihrem ServiceNow-instance. Sie benötigen Hi-Anmeldeinformationen , um die Installation abzuschließen. Weitere Informationen zum Installieren von Apps aus dem ServiceNow Store finden Sie unter Übersicht über den Kauf.
Erstellen Sie einen neuen Benutzer in ServiceNow, und weisen Sie ihm die folgende Rolle zu:
x_mioms_azpipeline.pipelinesExecution
.
Einrichten einer Azure DevOps-Organisation
Installieren Sie die ServiceNow Change Management-Erweiterung auf Ihrem Azure DevOps-organization.
Erstellen Sie wie folgt eine neue ServiceNow-Dienstverbindung in Ihrem Azure DevOps-Projekt. Alternativ können Sie auch die OAuth2-Authentifizierung verwenden.
Konfigurieren der Releasepipeline.
Navigieren Sie zu Ihrer Releasepipeline, und wählen Sie dann das Symbol Bedingungen vor der Bereitstellung aus. Wählen Sie Gates und das ServiceNow Change Management Pre-Deployment Gate aus.
Wählen Sie die Dienstverbindung aus, die Sie zuvor erstellt haben, und füllen Sie die erforderlichen Felder wie folgt aus:
- ServiceNow-Verbindung: Verbindung mit der ServiceNow-instance, die für die Änderungsverwaltung verwendet wird.
- Kurzbeschreibung: Eine Zusammenfassung der Änderung.
- Beschreibung: Eine ausführliche Beschreibung der Änderung.
- Kategorie: Die Kategorie der Änderung. Beispiel: Hardware, Netzwerk, Software.
- Priorität: Priorität der Änderung.
- Risiko: Die Risikostufe für die Änderung.
- Auswirkung: Die Auswirkung, die die Änderung auf das Unternehmen hat.
- Konfigurationselement: Konfigurationselement (CI), für das die Änderung gilt.
- Zuweisungsgruppe: Die Gruppe, der die Änderung zugewiesen ist.
- Zeitplan der Änderungsanforderung: Zeitplan der Änderung, wie vom ServiceNow-Workflow berücksichtigt. Datum und Uhrzeit sollten in UTC vorliegen, und das Format sollte yyyy-MM-ddTHH:mm:ssZ sein. Beispiel: 2018-01-31T07:56:59Z.
- Zusätzliche Änderungsanforderungsparameter: Name muss Feldname (nicht Bezeichnung) sein, dem "u_" vorangestellt ist. Beispiel: u_backout_plan. Value muss ein gültiger Wert in ServiceNow sein. Ungültige Einträge werden ignoriert.
- Gewünschter Status der Änderungsanforderung: Das Gate ist erfolgreich, und die Pipeline wird fortgesetzt, wenn die Änderungsanforderung status mit dem angegebenen Wert identisch ist.
- Erweitert: Gibt einen Ausdruck an, der steuert, wann dieses Gate erfolgreich sein soll. Die Änderungsanforderung ist in der Antwort von ServiceNow als root['result'] definiert. Beispiel: "and(eq(root['result'].state, 'New'),eq(root['result'].risk, 'Low')))". Weitere Informationen finden Sie unter Ausdrücke .
- Ausgabevariablen : Sie müssen einen Verweisnamen angeben, um Ausgabevariablen in Ihrem Bereitstellungsworkflow verwenden zu können. Auf Gatevariablen kann in einem Auftrag ohne Agent mithilfe von "PREDEPLOYGATE" als "Präfix" zugegriffen werden. Wenn der Verweisname beispielsweise auf "gate1" festgelegt ist, kann die Änderungsnummer wie folgt abgerufen werden: $(PREDEPLOYGATE.gate1.CHANGE_REQUEST_NUMBER).
- CHANGE_REQUEST_NUMBER : Nummer der Änderungsanforderung.
- CHANGE_SYSTEM_ID : System-ID der Änderungsanforderung.
Fügen Sie am Ende Ihrer Releasepipeline einen Auftrag ohne Agent mit einer Aufgabe Update ServiceNow Change Request hinzu.
- ServiceNow-Verbindung: Verbindung mit der ServiceNow-instance, die für die Änderungsverwaltung verwendet wird.
- Change request number: Nummer der Aktualisierungsanforderung.
- Aktualisiert status der Änderungsanforderung: Status, der für die Änderungsanforderung festgelegt werden soll. Diese Eingabe ist verfügbar, wenn status aktualisieren ausgewählt ist.
- Code schließen und Notizen schließen: Status zurückgeben.
Hinweis
Der Task Update ServiceNow Change Request schlägt fehl, wenn keines der Änderungsanforderungsfelder während der Ausführung aktualisiert wird. ServiceNow ignoriert ungültige Felder und Werte, die an die Aufgabe übergeben werden.
Erstellen einer Releasepipeline
Wählen Sie Release erstellen aus, um eine neue Releasepipeline zu starten.
Ihre Pipeline sollte im Rahmen der zuvor erstellten Bedingungen vor der Bereitstellung eine neue Änderungsanforderung in ServiceNow erstellen.
Die Pipeline wartet, bis alle Gates innerhalb desselben Beispielintervalls erfolgreich sind. Um die Änderungsnummer zu überprüfen, wählen Sie das symbol status aus, um Ihre Pipelineprotokolle anzuzeigen.
Die Änderungsanforderung wird in ServiceNow in die Warteschlange gestellt und kann vom Besitzer der Änderung angezeigt werden.
Die Releasepipeline, die die neue Änderungsanforderung ausgelöst hat, finden Sie im Abschnitt Metadaten der Azure DevOps-Pipeline .
Wenn die Änderung für die Implementierung bereit ist (in den Status Implementieren verschoben), wird die Ausführung der Pipeline fortgesetzt, und das Gate status sollte erfolgreich zurückgegeben werden.
Die Änderungsanforderung wird nach der Bereitstellung automatisch geschlossen.
YAML-Pipelines
In diesem Tutorial wird davon ausgegangen, dass Sie über eine yaml-Pipeline mit einer einzelnen Phase verfügen, die in einer "neuesten" Umgebung bereitgestellt wird.
Hinzufügen einer Überprüfung
Navigieren Sie zu Ihrer Umgebung "latest", wählen Sie die Schaltfläche mit den Auslassungspunkten und dann Genehmigungen und Überprüfungen aus.
Wählen Sie das Pluszeichen aus, um eine neue Überprüfung hinzuzufügen, und fügen Sie dann Ihrer Umgebung die Überprüfung ServiceNow Change Management hinzu. Verwenden Sie dieselbe Konfiguration, die Sie für Ihr Gate vor der Bereitstellung verwendet haben.
Hinzufügen der YAML-Aufgabe
Fügen Sie Ihrer Phase einen Serverauftrag hinzu, um die Änderungsanforderung zu aktualisieren.
Speichern Sie die Pipeline, und führen Sie sie aus. Eine neue Änderungsanforderung wird automatisch erstellt, und die Pipeline wird angehalten und wartet, bis die Überprüfungen abgeschlossen sind.
Sobald die Überprüfungen abgeschlossen sind, sollte die Pipeline die Ausführung fortsetzen. Die Änderungsanforderung wird nach der Bereitstellung automatisch geschlossen.
Häufig gestellte Fragen
F: Welche Versionen von ServiceNow werden unterstützt?
A: Wir unterstützen die folgenden Versionen: Kingston, London, New York, Paris, Quebec, Rom, San Diego und Tokio.
A: Wir unterstützen die folgenden Versionen: Kingston, London, New York, Paris und Quebec.
A: Wir unterstützen die folgenden Versionen: San Diego, Tokyo und Utah.
F: Welche Arten von Änderungsanforderungen werden unterstützt?
A: Normale, Standard- und Notfalländerungsanforderungen werden mit dieser Integration unterstützt.
F: Gewusst wie zusätzliche Änderungseigenschaften festlegen?
A: Sie können zusätzliche Änderungseigenschaften im Feld Zusätzliche Änderungsanforderungsparameter angeben. Verwenden Sie ein JSON-Format für Schlüssel-Wert-Paare. Dabei ist der Name der Feldname (nicht die Bezeichnung) mit u_
dem Präfix .
F: Kann ich benutzerdefinierte Felder in der Änderungsanforderung mit zusätzlichen Änderungsanforderungsparametern aktualisieren?
A: Wenn benutzerdefinierte Felder in der Änderungsanforderung definiert sind, müssen Sie die Zuordnung für benutzerdefinierte Felder in Import set transformation map hinzufügen.
F: Es werden keine Dropdownwerte für Kategorie, Status und andere Felder aufgefüllt. Wie sollte ich vorgehen?
A: Change Management Core und Change Management – State Model Plug-Ins müssen in Ihrem ServiceNow-instance aktiv sein, damit die Dropdowns funktionieren. Weitere Informationen finden Sie unter Upgrade Change Management und Aktualisieren von Änderungsanforderungszuständen .
Ressourcen
- Konfigurieren Ihrer Releasepipelines für sichere Bereitstellungen
- Twitter-Stimmung als Releasegate
- GitHub-Probleme als Releasegate
- Erstellen von benutzerdefinierten Gates.
- Beispiel für die ServerTaskHelper-Bibliothek