Verwenden Sie SSH, um eine VM mithilfe eines Workflow-Typvorgangs herunterzufahren
Verwenden Sie SSH, um eine VM mithilfe eines Workflow-Vorgangs Remote herunterzufahren. Befolgen Sie diesen Anwendungsfall, um alle Aufgaben durchzugehen, die zum Ausführen dieser Art des Herunterfahrens erforderlich sind.
Vorbereitungen
Prozedur
-
Führen Sie die folgenden Schritte aus, um die anwenderdefinierte SSH-Aktivität zu erstellen:
- Navigieren zu Administratorportal > Workflows > Workflow-Editoran.
- Klicken Sie auf Anwenderdefiniert Und klicken Sie dann auf + (Pluszeichen) zum Erstellen einer neuen anwenderdefinierten Aktivität.
-
Wählen Sie aus der Liste der Aktivitätstypen aus SSH .
-
Der Aktivitätendesigner wird geöffnet, und die Registerkarte „Allgemein“ wird angezeigt
Geben Sie einen eindeutigen Namen für die Aktivität ein, und klicken Sie dann auf Fahren Sie Fort .
- Fügen Sie auf der Registerkarte Eingaben die Eingabevariablen mit den folgenden Schritten hinzu, und klicken Sie dann auf Fahren Sie Fort :
- Klicken Sie in der Eingabetabelle auf + in einem Kreis Zum Erstellen einer neuen Eingabevariable.
-
Klicken Sie rechts neben ABC in Name Und geben Sie den Eingabenamen ein.
Eingaben variieren je nach Objekt, das betroffen sein soll. Sie können eine Aktivität anhalten, um eine VM anzuhalten, damit die Eingaben die Werte widerspiegeln, die zum Ausführen dieser Aktion erforderlich sind.
Die Typ Und Obligatorisch Spalten werden entsprechend der Eingabe automatisch ausgefüllt.
-
Erstellen Sie ein neues Eingabeobjekt für jede Eingabe in der folgenden Tabelle, und klicken Sie dann auf Fahren Sie Fort :
Eingabevariable Typ Obligatorisch Host Zeichenfolge Nein Befehl Zeichenfolge Nein CredentialTag Zeichenfolge Nein - Führen Sie auf der Registerkarte Ausführungsbefehl Folgendes aus:
- Klicken Sie in der Tabelle Ausgabe auf + in einem Kreis Zum Erstellen einer neuen Ausgabevariable.
-
Klicken Sie rechts neben ABC in Name Und geben Sie den Ausgabenamen ein.
Die Ausgabevariablen spiegeln die möglichen Ergebnisse wider, wenn der Workflow versucht, SSH an die VM zu senden. Die Typ Spalte wird automatisch ausgefüllt.
Ausgaben Typ Fehler Zeichenfolge Ausgabe Zeichenfolge - Klicken und ziehen Sie Fehler Variable zum Feld Variablenname in der Tabelle „Analyseregeln“.
- Wählen Sie im Dialogfeld „Analyseregel für Fehler“ in der Dropdown-Liste „Analysequelle“ die entsprechende Quelle aus. In diesem Fall „executionResult.errorMessages“.
-
Wiederholen Sie den Vorgang für die Ausgabevariable, wählen Sie „executionResult.output“ als Analysequelle aus, und klicken Sie dann auf Übermitteln .
-
Klicken Sie auf Fortsetzen.
Bedingungen sind optional.
- Klicken Sie Auf Speichern , Und klicken Sie dann auf Veröffentlichen Um die Aktivität für die Verwendung im Workflow verfügbar zu machen.
-
Führen Sie die folgenden Schritte aus, um den SSH-Workflow zu erstellen, der zum Ausschalten der VM erforderlich ist:
Wenn Sie einen Workflow erstellen, ordnen Sie ihn einer Tabelle und einer Aktivität zu.
- Sie können den Workflow in einer Tabelle auf globaler Ebene oder einer Tabelle auf Anwendungsebene erstellen. Verwenden Sie die globale Tabelle, um den Workflow für die Verwendung mit allen ServiceNow-Anwendungen verfügbar zu machen. Hier verwenden wir eine Tabelle für Cloud Provisioning and Governance, Daher ist dieser Workflow nur für die Verwendung mit dieser Anwendung verfügbar.
- Sie können den Workflow im Workflow-Editor oder im Aktivitätendesigner erstellen. Hier wird der Aktivitätsdesigner verwendet.
- Wählen Sie im Aktivitätendesigner aus Workflows Registerkarte rechts, und klicken Sie dann auf + (Pluszeichen), um einen neuen Workflow hinzuzufügen.
- Geben Sie im Fenster neuer Workflow einen eindeutigen Namen für den Workflow ein.
-
Von Tabelle Wählen Sie die zu verwendende Tabelle aus.
Suchen und verwenden Sie cmdb_ci_vm_instance der VM-Instanz Dient zur Verwendung des Workflows zum Ausschalten einer VM.
- Klicken Sie auf Absenden.
- Wenn der Workflow im Canvas angezeigt wird, löschen Sie die Verbindungslinie zwischen dem Start- und Endpunkt des Workflows.
- Löschen Sie die Verbindungslinie zwischen dem Start- und Endpunkt des Workflows.
- Klicken Sie mit der rechten Maustaste auf den Canvas „weitere Informationen“, und wählen Sie aus Eingaben Bearbeiten .
-
Erstellen Sie die folgenden Eingaben:
Hinweis:Nehmen Sie die Eingabenamen aus dem Feld Spalte, nicht aus dem Feld Bezeichnung. Wenn der Workflow einer Tabelle auf globaler Ebene zugeordnet ist, wird dem Eingabenamen im Feld Spalte u_ vorangestellt, z. B. u_ipaddress. Hier ist die Tabelle auf Anwendungsebene und benötigt daher kein Präfix.
Tabelle : 1. Workflow-Eingaben Typ Bezeichnung Spalte (automatisch hinzugefügt) Max. Länge Zeichenfolge IPAddress ipaddress 100 Zeichenfolge CredentialTag CredentialTag 100 - Klicken Sie auf Absenden.
- Klicken Sie mit der rechten Maustaste auf den Canvas, und wählen Sie aus Fügen Sie Eine Anwenderdefinierte Aktivität Hinzu .
- Suchen Sie im Fenster „Versionen“ nach der Aktivität, die Sie ursprünglich in diesem Anwendungsfall erstellt haben, und wählen Sie sie aus.
- Geben Sie im Fenster „neue Aktivität“ für diese Aktivität (neuer Datensatz für Workflow-Aktivität [Diagrammansicht]) einen Namen für die Aktivität ein.
-
In Host Feld: Geben Sie die Eingabezuordnung ein, die die Aktivität erwartet.
Hier ist die IP-Adresse des Hosts: ${workflow.inputs.u_ipaddress}. Verwenden Sie diesen Ausdruck, um die IP-Adresse abzurufen:
$(Skript:CMPVMUtils.getReachableIp[arg=$(Stack.items[Virtual Server].attributes[sys_ID])])
- Geben Sie im Feld Befehl ein shutdown -h now
-
Geben Sie im Feld Anmeldeinformations-Tag ein ${workflow.inputs.u_credentialtag}
Verwenden Sie diesen Ausdruck, um das Anmeldeinformations-Tag abzurufen:
$(Script:CMPVMUtils.getCredentialAlias[arg=${Stack.items[Virtual Server].attributes[sys_id]}])
-
Klicken Sie auf Absenden.
Die Aktivität wird im Workflow-Canvas angezeigt.
- Klicken Sie mit der rechten Maustaste auf den Canvas, und wählen Sie aus Fügen Sie Eine Kernaktivität Hinzu Dient zum Hinzufügen einer Skriptaktivität.
- Suchen Sie im Fenster Workflow-Aktivitätsdefinitionen nach, und wählen Sie aus Skript Ausführen .
- Geben Sie im Fenster neue Aktivität: Skript ausführen einen Namen für die Aktivität ein.
-
Schneiden Sie ein Skript (passend zu Ihrer Umgebung) aus, und fügen Sie es in ein Skript Feld.
Dieses Skript aktualisiert den Status der VM, nachdem sie heruntergefahren wurde.Beispielskript:
if ( gs.nil(data.get(3).error)) { current.state = 'off'; current.setWorkflow(false); current.update(); } - Klicken Sie auf Absenden.
- Verbinden Sie im Canvas die Connectors zwischen dem Anfangspunkt, der Aktivität, dem Ausführungsskript und dem Endpunkt.
-
Validieren Sie den Workflow mithilfe der Workflow-Validierung.
Hinweis:Das System empfiehlt nicht die Verwendung von current.update(). Dies kann ignoriert werden.
-
So fügen Sie den Vorgang einem Ressourcenblock hinzu:
Sie können aus den vorhandenen Vorgängen in einem Ressourcenblock auswählen, um mit Ihrem Workflow zu arbeiten, oder Sie können einen anwenderdefinierten Vorgang erstellen.
- In Portal für Cloud-Admin., Navigieren Sie zu Design > Ressourcenblöckean.
- Wählen Sie z. B. einen Ressourcenblock aus Virtueller Server .
- Verschieben Sie den Status des Ressourcenblocks aus Veröffentlicht Bis Entwurf Um sie bearbeitbar zu machen.
-
Wählen Sie aus Vorgänge Und wählen Sie dann im Dropdown-Feld „Schnittstelle“ eine Schnittstelle aus, die dem Anwender zur Verfügung steht.
Die Standardschnittstelle ist Virtuelle Serverschnittstelle .
- Klicken Sie Auf + Geben Sie rechts neben dem Feld „Vorgang“ im Dialogfeld „Vorgang hinzufügen“ einen aussagekräftigen und eindeutigen Namen ein.
- Wählen Sie einen Vorgang aus der Dropdown-Liste „Vorgangstyp“ aus.
- Wählen Sie Aus Öffentlich Aus dem Feld Zugriffstyp.
-
Füllen Sie das Formular aus, und klicken Sie dann auf Übermitteln .
Vorgangstyp Wählen Sie den auszuführenden Vorgang aus. Zugriffstyp Wählen Sie aus, damit der Anwender den Vorgang während der Bereitstellung auf Ressourcenebene anzeigen kann Öffentlich . Vorgänge auf festgelegt Privat Sind während der Bereitstellung nicht sichtbar. Der Vorgang ist für die Ressource verfügbar, wenn Sie die Ressource für Ihren Workflow auswählen. -
Um einen Ressourcenvorgangsschritt zum Aufrufen des Workflows hinzuzufügen, klicken Sie weiterhin auf der Registerkarte „Vorgänge“ auf Schritte > Schritt hinzufügenan.
Damit der Workflow als Teil der Update-Sätze exportiert werden kann, müssen Sie eine Erweiterungsschnittstelle erstellen und den neuen Vorgang hinzufügen. Details siehe Erweitern Cloud Provisioning and GovernanceRessourcenblöcke mit einem Überschreibungsvorgang.
- Wählen Sie im Popup „Vorgangsschritte hinzufügen“ die Option aus Workflow Aufrufen Für Vorgangstyp .
-
Wählen Sie aus Workflow Aus der Liste der Workflows, die Sie erstellt haben.
Das System kann die Liste mithilfe von Tags filtern. So fügen Sie ein Tag hinzu:
- Navigieren Sie zu Systemeigenschaften .
- Suchen und wählen Sie die Systemeigenschaft aus sn_cmp.workflow_tag_filter.
- Bearbeiten Sie die Eigenschaft. Fügen Sie ein Tag oder eine kommagetrennte Liste von Tags hinzu.
- Klicken Sie auf Speichern.
-
So filtern Sie die Workflows:
- Öffnen Sie in der Workflow-Tabelle den Workflow.
- Klicken Sie Auf Tag Hinzufügen .
- Geben Sie den Wert ein, den Sie zuvor in der Eigenschaft angegeben haben sn_cmp.workflow_tag_filter
- Klicken Sie Auf Eingabetaste Zum Hinzufügen des Werts als Tag zum Workflow. Der neue Schritt wird angezeigt, nachdem die Software den neuen Tag 2-Vorgangskatalog generiert hat.
-
Es können Workflows vorhanden sein, die in anderen Tabellen als global erstellt werden.
Sie können einen Workflow hinzufügen, der für eine solche Tabelle erstellt wurde. Zum Ausführen von Vorgängen für diesen Workflow-Typ benötigen Sie die sys_ID des Datensatzes, in dem der Workflow ausgeführt wird, um den aktuellen Datensatz zu erstellen. Wenn der Designer also einen Workflow hinzufügt, der sich in einer anderen Tabelle als global befindet, erstellt das System einen wf_currentParameter im Eingabeparameter für Vorgang. Sie können dann einen Ausdruck schreiben, um die sys_ID der Ressource zuzuordnen, in der der Vorgang ausgeführt wird. Sobald dies abgeschlossen ist, kann der Designer das Stichwort „current“ in Workflow-Skripts verwenden.So fügen Sie den Workflow hinzu:
- Nachdem Sie den Schritt erstellt haben, fügt das System die Workflow-Eingaben den Vorgangseingabeparametern hinzu. Sie können dann bei Bedarf die Zuordnung für diese Parameter angeben.
- Klicken Sie auf Katalog Generieren Schaltfläche zum Erstellen des Katalogelements für den Vorgang.
- Nachdem der Katalog generiert wurde, können Sie den Katalogelementen aus den Lade- und Feldänderungsregeln hinzufügen.
- Legen Sie den Ressourcenblock auf fest Veröffentlicht status, um den Workflow in verfügbar zu machen Cloud-Anwenderportal.
-
Führen Sie die folgenden Schritte aus, um den Vorgang über das Anwenderportal auszuführen:
- Stellen Sie eine einfache AWS-VM über das Portal bereit.
- Nachdem die VM-Bereitstellung abgeschlossen ist, navigieren Sie zu Stapel > VM-Ressource.
-
Wählen Sie in der Option Ressourcenvorgang auswählen die anwenderdefinierte Stoppaktivität aus, die Sie zuvor in diesem Anwendungsfall erstellt haben, und klicken Sie dann auf OK.
Der Vorgang wird ausgeführt, nachdem das RITM erstellt wurde und sich der VM-Status in der AWS-Konsole ändert.
- Navigieren zu Betreiben > Pfade Dient zum Anzeigen der Pfadprotokolle und zum Nachverfolgen der Vorgangsschritte.
-
Führen Sie zur Problembehandlung bei Bedarf die folgenden Schritte aus:
-
Verwenden Sie das Anforderungselement (RITM), und navigieren Sie zum RootCauseAnalysis-Dashboard.
Das RITM hat den Link zum Workflow-Kontext des derzeit ausgeführten Vorgangs.
-
Überprüfen Sie auf diese häufigen Fehler:
Tabelle : 2. Fehlerbehandlung Symptom Fehlermeldung VM wird heruntergefahren, aber es ist ein Problem mit der SSH-Verbindung aufgetreten „Fehler; Auftrag mit STATUSFEHLER abgeschlossen: Problem in SSH-Sitzung, Auftrag abgebrochen: Verbindung unerwartet vom SSH-Server geschlossen: \N“, VM wird bereits heruntergefahren/kann die VM nicht erreichen „Verbindung kann nicht hergestellt werden, Status ist „TCP_CONNECTION_FAILURE“. Zeitüberschreitung beim Warten auf TCP-Verbindung mit 10.198.252.224:22: \N“, Hinweis:Bestätigen Sie, dass die IP-Adresse der VM in wf_context die entsprechende Adresse ist. Die VM wurde möglicherweise bereits heruntergefahren. Bestätigen Sie, dass die IP-Adresse zugänglich ist.Stammzugriff nicht verfügbar „Fehler beim Ausgeben des Methodenaufrufs: Zugriff verweigert\nmuss Stamm sein.\nExit-Status: 1\n\n“, Hinweis:Bestätigen Sie, dass Muss Sudo Sein Das Kontrollkästchen ist in der SSH-Aktivität zu Beginn dieses Anwendungsfalls aktiviert.
-
Verwenden Sie das Anforderungselement (RITM), und navigieren Sie zum RootCauseAnalysis-Dashboard.