Blog Archiv

Suchen

Azure Runbooks in der PowerShell ISE lokal bearbeiten und testen

Bewertung:  / 0
Donnerstag, 15. September 2016 Dirk Huser

Mit zunehmender Verlagerung von Infrastruktur, Diensten und Anwendungen in die Cloud spielt auch die Automation in diesem Bereich eine immer wichtigere Rolle. Automation im Umfeld von Microsoft Azure wird durch Azure Runbooks bereitgestellt, welche PowerShell-Skripte oder PowerShell-Workflows enthalten können.

Das Azure Portal bietet natürlich Möglichkeiten zur Verwaltung und Bearbeitung dieser Runbooks an, speziell der Editor im Portal hat aber sicherlich noch einiges an Verbesserungspotential.

Mit dem sog. "AzureAutomationAuthoringToolkit" (ATK) bietet sich jedoch eine Möglichkeit in Azure gehostete Runbooks lokal in der PowerShell ISE zu bearbeiten, nach Azure hochzuladen und dort ausführen zu lassen.

Der ISE-Editor bietet gegenüber dem Portal mehr Komfort, z.B. ein besseres Color-coding, IntelliSense und die Möglichkeit der Befehlsvervollständigung mit der Tab-Taste. Da der ISE-Editor zudem mehrere Reiter anzeigen kann, ist auch die gleichzeitige Bearbeitung mehrerer Runbooks in einer oder mehreren Sessions möglich.

Neben Runbooks können mit dem ATK auch Azure-Assets, also Variablen, Credentials usw. erzeugt, angezeigt und modifiziert werden. DSCs (Desired State Configuration) werden ebenfalls angeboten.

Toolkit GUI

Das ATK kann über die PowerShell Gallery bezogen und installiert werden: http://www.powershellgallery.com/

Items aus der Gallery lassen sich mit dem PowerShell 5 Cmdlet "Install-Module" downloaden und installieren. PowerShell 5.0 ist in Windows 10 bereits enthalten, kann aber auch über in Form des WMF (Windows Management Framework) oder per MSI installiert werden. Weitere Infos dazu auf http://www.powershellgallery.com/

Installation ATK in einer administrativen ISE-Sitzung:

Install-Module -Name AzureAutomationAuthoringToolkit

Die Installation richtet auch den NuGetPacketProvider ein, wenn erforderlich.

Um das ATK nach erfolgreicher Installation innnerhalb einer ISE-Sitzung zu aktivieren, muss es als Modul geladen werden:

Import-Module AzureAutomationAuthoringToolkit

Das Import-Cmdlet kann natürlich auch in das ISE-Profil integriert werden, wenn das ATK immer beim Start einer ISE-Session zur Verfügung stehen soll. Da der Ladevorgang aber einen Moment dauert, ist das jedoch nicht immer wünschenswert.

Nach dem Import blendet sich im Tool-Bereich der ISE ein neuer Reiter "Azure Automation ISE add-on" ein und das ATK kann auf dem Tool-Reiter "Configuration" konfiguriert werden.

Wichtig ist hier das "Sign in to Azure Automation", welche die Verbindung zur Azure Subscription herstellt. Das Sign In erfolgt mit den üblichen Anmeldedaten, die auch für den Einstieg in das Portal benötigt werden. Danach können Subscription und Automation Account ausgewählt werden.

Das Tool legt je nach gewählter Subscription einen lokalen Pfad für den Download von Azure Inhalten an, die "Account content location". Dieser Pfad befindet sich immer innerhalb des "Base path for runbooks und assets", der weiter oben im Dialog angegeben werden kann.

Hinweis: Als ich das Tool eingerichtet habe, scheiterte das Tool beim Anlegen des lokalen Subscription-Pfads! Ich habe den angezeigten Pfad dann einfach manuell im Explorer angelegt, danach lief das Tool einwandfrei.

Nach erfolgreicher Verbindung mit einer Azure Scubscription und einem Automation Account, werden auf den anderen Tool-Reitern die gefundenen Inhalte angezeigt. Z.B. auf dem Reiter "Runbooks" alle gefundenen Runbooks.

Runbooks können jetzt über die Schalter am unteren Dialogrand downgeloaded, bearbeitet und wieder nach Azure hochgeladen werden:

Tool-Tabs

Besonders nett ist die Funktion "Test Draft in Azure": Damit wird das Script in Azure ausgeführt. Vor der Ausführung werden ggf. Eingabeparameter für das Script abgefragt. Script-Ausgaben, z.B. mit Write-Verbose oder Write-Output werden in einem eigenen Konsolenfenster angezeigt:

ISE ATK3

Wie bereits erwähnt besteht auch Zugriff auf die in Azure abgelegten Assets, wie Variablen, Credentials, Connections und Certificates. Entsprechende Informationen finden sich auf dem "Assets"-Reiter des Tools.

Auch für Runbooks im SMA-Umfeld gibt es ein gleichartiges Tool. Die Befehle für die Installation dafür lauten einfach:

Install-Module -Name SMAAuthoringToolkit

Import-Module -Name SMAAuthoringToolkit

Aber Achtung: Die beiden Tools können nicht gleichzeitig auf einem Rechner installiert sein!

 

Anpassungen an Listen nach Update verschwunden

Bewertung:  / 0
Donnerstag, 30. Juni 2016 TPE

Ich hatte in den letzten Tagen bei zwei Kunden ein Problem, dass ich sehr merkwürdig finde.

In einem Fall hatte ich das Cireson Asset Management aktualisert, in dem anderen Fall das Asset Management von Provance.

Unabhängig voneinandner waren in beiden Fällen, nach der Aktualisierung der gesealten (und nur diesen) Management Packs der jeweiligen Herstellern, die kundenspezifischen Anpassungen an Listenelementen nicht mehr sichtbar. So waren z. B. die Asset Status Werte wieder auf orignal Einstellungen zurückgesetzt.

Die Lösung bestand darin, die nicht gesealten Kundenmanagement Packs mit den Listenanpassungen einmal zu exportieren und direkt danach wieder zu importieren.

Danach waren alle Kundenänderungen wieder sichtbar.

Vieleicht hilft dieser Hinweis ...

Read-Only Textfelder in SCSM-Formularen

Bewertung:  / 0
Freitag, 06. Mai 2016 Dirk Huser

Mit Hilfe des Authoring Tools können für SCSM Erweiterungen bereits vorhandener Formulare gebaut oder auch komplett neue Formulare erstellt werden.

Leider bietet das Authoring Tool nicht alle Eigenschaften der Formular-Steuerelemente zur Bearbeitung und Verwendung an.

Eine nützliche Eigenschaft, die davon ebenfalls betroffen ist, ist z.B. die IsReadOnly-Eigenschaft. Mit IsReadOnly kann ein Textbox-Element so markiert werden, dass der Inhalt nicht mehr bearbeitet werden kann.

Wozu überhaupt eine Textbox auf Read-Only setzen, da das Element doch für gewöhnlich für Eingaben verwendet werden soll? Read-Only Textboxen können z.B. verwendet werden, um automatisch erstellte Texte und Daten anzuzeigen, die vom Anwender nicht verändert werden sollen.

Beispiel für die konkrete Anwendung in einem Kundenprojekt: Für Change Requests erstellt eine Anwendung in Orchestrator ein Log aller Aktivitäten nach der Genehmigung des Changes. Zum Abschluss des Changes wird erneut ein Log erstellt, das die Unterschiede zum genehmigten Ablauf zeigt und alle Genehmigungs-Entscheidungen aus den Prüfaktivitäten ausweist. Das ist einfacher, als mühsam für ein Review den Verlauf des Changes durchzuarbeiten. Die Logs sollen natürlich nicht vom Anwender änderbar sein und werden daher in Read-Only Textboxen auf einem eigenen Reiter angezeigt.

Dafür gibt es doch auch die IsEnabled-Eigenschaft, mag man jetzt einwenden (im Authoring Tool: "Ist aktiviert") ... Richtig, die könnte man auch verwenden, sie hat jedoch einen gravierenden Nachteil: Inhalte von Textboxen, deren IsEnabled-Eigenschaft auf False gesetzt ist, können nicht kopiert werden, die Funktion ist im Kontext-Menü der Textbox ausgegraut. Lästig, gerade bei längeren Texten, die man noch mal separat weiterverarbeiten will, z.B. in eine Email kopieren.

Mit IstReadOnly kann man den gleichen Effeket erzielen, wie mit IsEnabled, allerdings bleibt die Kopier-Möglichkeit erhalten.

Wie wendet man diese Eigenschaft nun am besten an?

Da sie im Authoring Tool nicht angeboten wird, setzt man erst einmal im Eigenschaftenfenster der Textbox im Authoring Tool die "Ist Aktiviert"-Eigenschaft auf "Falsch" und speichert das Formular-MP. Mit einem Texteditor sucht man dann den XML-Tag im MP, welcher die Eigenschaft IsEnabled für die Textbox setzt. Die sieht z.B. so aus:

      <PropertyChange Object="TextBox_3" Property="IsEnabled">
        <NewValue>False</NewValue>
      </PropertyChange>

Anstelle des Eigenschaften-Bezeichners "IsEnabled" trägt man jetzt "IsReadOnly" ein und setzt den NewValue auf "True":

      <PropertyChange Object="TextBox_3" Property="IsReadOnly">
        <NewValue>True</NewValue>
      </PropertyChange>

Danach kann man das MP auch wieder in das Authoring Tool laden und weiter bearbeiten.

Tipp: Diese Vorgehensweise kann auch für andere Eigenschaften von Steuerelementen verwendet werden, welche im Authoring Tool nicht angeboten, aber prinzipiell von .Net zur Verfügung gestellt werden. Bei der Eigenschaft muss es sich allerdings um eine sog. "Dependency Property" handeln, sonst funktioniert das mit dem XML-Tag im MP nicht.

 

 

Portal Update 3

Bewertung:  / 0
Donnerstag, 12. Mai 2016 Dirk Huser

Microsoft hat das dritte Update-Package für das neue SCSM Self Service Portal veröffentlicht.

Es kann ab der RTM-Version des Portals über bereits bestehende Installationen installiert werden. Falls eigene Änderungen an .cshtml-Dateien vorgenommen wurden, dann unbedingt die Hinweise im Support-Artikel beachten, da diese Dateien dann nicht durch die Installation überschrieben werden!

Details hier: https://support.microsoft.com/en-us/kb/3144617

Neben einer Reihe wichtiger Bug Fixes gibt es diese Neuerungen:

  • Anzeige und Download von Datei-Anhängen im Action Log.
  • Die Eigenschaften "Muss abstimmen" und "Hat veto" für Prüfaktivitäten werden jetzt berücksichtigt.
  • Selbst definierte Elemente für die Status-Enumerationen von Incident und Service Requests führten bisher dazu, dass Tickets, die diese Status verwenden, in der "Meine Anfragen"-Ansicht über den "Geschlossen"-Filter angezeigt werden. Jetzt können selbst ergänzte Elemente auch so konfiguriert werden, dass Tickets in diesem Status im "Aktiv"-Filter sichtbar sind. Siehe hier (Eigenschaft "CustomActiveRequestStatusEnumList" im "Basic Customization"-Abschnitt): https://technet.microsoft.com/en-us/library/mt622142(v=sc.12).aspx

 

Cireson Portal Hotfix und das LastModified Datum

Bewertung:  / 0
Montag, 04. April 2016 TPE

In meinem letzten Blogeintrag hatte ich die Version 5 des Cireson SCSM Portals kurz angesprochen.
In der Zwischenzeit gibt es dafür einige Hotfixe, die bekannte Probleme beheben.

Im Zusammenhang mit den "Advanced Request Offerings" sollte man einen Hinweis, der im Hotfix 5.0.3 zu lesen ist, unbedingt beachten:

IMPORTANT NOTE:   If you have implemented the Advanced Request Offerings product and would like the hotfix for this product you must re-import Cireson.AdvanceRequestOffering.mpb  this WILL cause the LastModified dates to be updated.

Mir war diese Tatsache nicht aufgefallen, was in der Tat dazu geführt hat, dass zu allen Workitems das Last Modified Datum auf den Zeitpunkt gesetzt wurde, an dem das Management Pack importiert wurde. 

Unglücklicherweise gab es bei dem Kunden im Incident Umfeld einige Views und SLAs, die das Last Modfied Datum von Incidents benutzen, um Tickets, an denen längere Zeit nichts gemacht wurde, zu eskalieren. ;-(

Mit einigem SQL Know How ist es mir gelungen, das Datum zumindest wieder auf den Zeitpunkt des letzten Logeintrages zu setzen, was ein brauchbare Lösung war.

Falls das original Datum nach dem Import des Management Packs wieder hergestellt werden soll, muss es zuvor gesichert werden. Da das direkte Ändern von Daten in der SCSM Datenbank von Microsoft nicht supported wird, möchte ich an dieser Stelle lediglich den Hinweise geben, dass das Last Modifed Datum in der Tabelle BaseManagendEntity zu finden ist:

basemanagedentity