Bereitstellungsworkflow - Aufgabe inkl. Softwareinstallation

Antworten
dodic
Beiträge: 437
Registriert: 03. Feb 2012, 10:51
Wohnort: Salzgitter
Kontaktdaten:

Bereitstellungsworkflow - Aufgabe inkl. Softwareinstallation

Beitrag von dodic » 12. Jun 2015, 12:52

Hallo,

ich bin nun seit ein paar Tagen dran einen Bereitstellungsworkflow zu erstellen der folgendes machen soll:

User bestellt Service über Katalog
Aufgabe wird erstellt und muss erledigt werden > Wait for Activity
Sobald die Aufgabe abgeschlossen ist, soll ein EmpirumSoftwarepaket installiert werden

Soweit so gut, vom Prinzip funktioniert das ganze auch schon. Die Bereitstellung des Softwarepakets haben wir nun über ein Powershellscript gelöst, welches eine XML-Datei erzeugt und auf dem Empirumserver unter ..\Log\EAI_Jobs ablegt.

Powershellscript: (Noch nicht ganz fertig aber funktioniert soweit)

Code: Alles auswählen

Param([string]$computer,[string]$mac, [string]$domain)

Function ClientMoveToGroup ($pcnummer, $pcmac, $groupid, $domain)
{
    [System.XML.XMLElement]$oXMLCommandType=$oXMLCommands.appendChild($oXMLDocument.CreateElement("ClientMoveToGroup"))
    [System.XML.XMLElement]$oXMLParameter=$oXMLCommandType.appendChild($oXMLDocument.CreateElement("parameters"))
    [System.XML.XMLElement]$oXMLGroupconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("GroupConfig"))
    [System.XML.XMLElement]$oXMLGroupconfID=$oXMLGroupconf.appendChild($oXMLDocument.CreateElement("GroupID"))
    [System.XML.XMLElement]$oXMLClientconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("ClientConfig"))
    [System.XML.XMLElement]$oXMLClientName=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("ClientName"))
    [System.XML.XMLElement]$oXMLClientDomain=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("Domain"))
    [System.XML.XMLElement]$oXMLClientMac=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("MACAddress"))
    [System.XML.XMLElement]$oXMLClientPXE=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("PXE"))
    [System.XML.XMLElement]$oXMLClientDHCP=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("DHCP"))
    
    $oXMLCommandType.setAttribute("ActionType","5")
    $oXMLCommandType.setAttribute("ActionCode","10")
    $oXMLCommandType.setAttribute("TargetType","1")

    $oXMLGroupconfID.set_innertext($groupid)
    $oXMLClientDHCP.set_innertext("1")
    $oXMLClientPXE.set_innertext("1")
    $oXMLClientMac.set_innertext($pcmac)
    $oXMLClientName.set_innertext($pcnummer)
    $oXMLClientDomain.set_innertext($domain)
      
}

Function ClientActivateSW ($pcnummer, $pcmac, $groupid, $domain)
{

     [System.XML.XMLElement]$oXMLCommandType=$oXMLCommands.appendChild($oXMLDocument.CreateElement("ClientActivateSW"))
     [System.XML.XMLElement]$oXMLParameter=$oXMLCommandType.appendChild($oXMLDocument.CreateElement("parameters"))
     [System.XML.XMLElement]$oXMLGroupconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("GroupConfig"))
     [System.XML.XMLElement]$oXMLGroupconfID=$oXMLGroupconf.appendChild($oXMLDocument.CreateElement("GroupID"))
     [System.XML.XMLElement]$oXMLClientconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("ClientConfig"))
     [System.XML.XMLElement]$oXMLClientName=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("ClientName"))
     [System.XML.XMLElement]$oXMLClientDomain=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("Domain"))
     [System.XML.XMLElement]$oXMLClientMac=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("MACAddress"))
     [System.XML.XMLElement]$oXMLClientPXE=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("PXE"))
     [System.XML.XMLElement]$oXMLClientDHCP=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("DHCP"))
    
    $oXMLCommandType.setAttribute("ActionType","6")
    $oXMLCommandType.setAttribute("ActionCode","20")
    $oXMLCommandType.setAttribute("TargetType","1")

    $oXMLGroupconfID.set_innertext($groupid)
    $oXMLClientDHCP.set_innertext("1")
    $oXMLClientPXE.set_innertext("1")
    $oXMLClientMac.set_innertext($pcmac)
    $oXMLClientName.set_innertext($pcnummer)
    $oXMLClientDomain.set_innertext($domain)
      
}


[string]$GroupID = "8B67F8AC-20D8-455F-BD24-77C741D4D58F"
[integer]$PXE = 1
[integer]$DHCP = 1
[string]$File = "\\HOSTNAME\test.xml"

# Neue XML Datei erzeugen
[System.XML.XMLDocument]$oXMLDocument=New-Object System.XML.XMLDocument

# XML Root-Knoten & ersten Subknoten anlegen
[System.XML.XMLElement]$oXMLRoot=$oXMLDocument.CreateElement("EmpTransport")
[System.XML.XMLElement]$oXMLDocument.appendChild($oXMLRoot)
[System.XML.XMLElement]$oXMLCommands=$oXMLRoot.appendChild($oXMLDocument.CreateElement("commands"))

# XML Struktur erzeugen - ClientMoveToGroup
ClientMoveToGroup -pcnummer $computer -pcmac $mac -groupID $GroupID -domain "DOMAIN"
ClientActivateSW -pcnummer $computer -pcmac $mac -groupID $GroupID -domain "DOMAIN

# Attribute anlegen

# XML Datei mit Werten befüllen

# XML Datei speichern
$oXMLDocument.Save($File)
Nun würden wir gerne eine Überprüfung einbauen:

Sobald das Paket installiert wurde > Workflow wird fortgesetzt
Fehler bei der Installation > Aufgabe erstellen

Wenn hier noch wer Ideen dafür hat, wie wir den Status, ob das Paket installiert wurde oder eben ein Fehler aufgetreten ist, mit dem Workflow abfragen können, immer her damit =).

Sven_Puth hatte hier schon die Idee die Empirum DB anzusprechen und auf

Code: Alles auswählen

SELECT * FROM VIEW_SW_DISTRIBUTION_EMPIRUM
zu schauen
Hauptsystem: Version: 10.0.2.3047
Testsystem: Version: 10.0.2.3047

Antworten

Zurück zu „Service Catalog“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast