2.5 Erstellen von Bundles unter Verwendung des zman-Befehlszeilenprogramms

In ZENworks Configuration Management können Sie verschiedene Arten von Bundles erstellen, z. B. Windows-Bundles, Datei-Bundles, Anweisungs-Bundles und Imaging-Bundles. Jedes Bundle verfügt über einen eigenen Datensatz und eigene Konfigurationseinstellungen. Da es ein komplexer Vorgang ist, Daten als Argumente in der Befehlszeile zu übertragen, werden für die Erstellung von Bundles im zman-Dienstprogramm XML-Dateien als Eingabe benötigt. Um das zman-Befehlszeilenprogramm für die Erstellung eines Bundles verwenden zu können, müssen Sie bereits ein Bundle des gleichen Typs mithilfe des ZENworks-Kontrollzentrums erstellt haben und es als XML exportieren. Weitere Informationen zur Erstellung von Bundles mithilfe des ZENworks-Kontrollzentrums erhalten Sie unter Abschnitt 2.0, Erstellen von Bundles. Sie können die exportierte XML-Datei als Schablone für die Erstellung von Bundles mit zman verwenden.

Sie können beispielsweise ein im ZENworks-Kontrollzentrum bereits erstelltes Datei-Bundle als XML-Datei exportieren und es dann für die Erstellung eines weiteren Datei-Bundles mit zman verwenden.

Ein Bundle kann mit dem Inhalt einer Datei verknüpft werden. Bei einer zu installierenden MSI-Datei ist der Inhalt einer Datei beispielsweise mit einem Windows-MSI-Bundle verknüpft.

Bundles können auch abhängig von anderen Bundles sein.

In den folgenden Abschnitten erhalten Sie Informationen zum Erstellen von Bundles unter Verwendung des zman-Befehlszeilenprogramms:

2.5.1 Erstellen eines Bundles ohne Inhalt oder Abhängigkeit von einem anderen Bundle

  1. Erstellen eines Bundles im ZENworks-Kontrollzentrum.

    Erstellen Sie im ZENworks-Kontrollzentrum beispielsweise ein Webanwendungs-Bundle mit dem Namen „google“, das die Google-Website startet.

  2. Exportieren Sie das Bundle unter Verwendung des folgenden Befehls in eine XML-Datei:

    zman bundle-export-to-file bundle_namebundle_dateiname.xml

    Exportieren Sie beispielsweise das google-Bundle mithilfe des Befehls bundle-export-to-file google google.xml in die Datei google.xml.

    Wenn Sie ein neues Bundle mit neuen Daten erstellen möchten, fahren Sie mit Schritt 3 fort. Wenn Sie ein neues Bundle mit den gleichen Daten wie das google-Bundle erstellen möchten, fahren Sie mit Schritt 4 fort.

  3. Bearbeiten Sie die XML-Datei entsprechend Ihren Anforderungen.

    Ändern Sie beispielsweise den Wert von <URL> im Abschnitt URL-Aktion starten unter ActionSet starten von http://www.google.com in http://www.yahoo.com, wie unten gezeigt.

       <ns2:ActionSets>
    
            <Id>104e5d74804052eb7ddc4a2f54358d97</Id>
    
           <Type>Launch</Type>
    
            <Version>1</Version>
    
            <Modified>false</Modified>
    
            <Data>
    
                <ns1:Launch/>
    
            </Data>
    
            <Actions>
    
                <Id>2ef5c645774759e9868ba2c157301949</Id>
    
                <Type>Launch URL Action</Type>
    
                <Data>
    
                    <ns1:LaunchUrlActionData>
    
                        <URL>http://www.yahoo.com</URL>
    
                        <WaitForExit>false</WaitForExit>
    
                    </ns1:LaunchUrlActionData>
    
                </Data>
    
                <ContinueOnFailure>false</ContinueOnFailure>
    
                <Enabled>true</Enabled>
    
                <Properties />
    
            </Actions>
    
        </ns2:ActionSets>
    
  4. Erstellen Sie ein Bundle unter Verwendung des folgenden Befehls:

    zman bundle-create neuer_bundle_name bundle_xml_dateiname.xml

    Um beispielsweise ein Yahoo-Bundle zu erstellen, geben Sie den Befehl zman bundle-create yahoo google.xml ein, wenn Sie von der Konsole dazu aufgefordert werden.

2.5.2 Erstellen eines Bundles mit Inhalt oder Abhängigkeit von einem anderen Bundle

  1. Erstellen Sie zwei Bundles im ZENworks-Kontrollzentrum.

    Erstellen Sie im ZENworks-Kontrollzentrum beispielsweise zwei MSI-Anwendungs-Bundles mit den Namen „officeXP“ und „officeXPSP1“. Das Bundle „officeXP“ installiert Microsoft Office XP über eine MSI-Datei. Das Bundle „officeXPSP1“ installiert das Service Pack 1 für Microsoft Office XP. Fügen Sie dem Bundle „officeXP“ eine Bundleinstallation zu, um „officeXPSP1“ zu installieren.

  2. Exportieren Sie das Bundle, bei dem eine Abhängigkeit von einem anderen Bundle besteht, als XML-Datei, indem Sie den folgenden Befehl verwenden:

    zman bundle-export-to-file bundle_namebundle_dateiname.xml

    Auf diese Weise werden die Dateien bundle_name.xml und bundle_dateiname_ActionContentInfo.xml erstellt.

    Exportieren Sie beispielsweise das google-Bundle mithilfe des Befehls zman bundle-export-to-file officeXP officeXP.xml in die Datei google.xml. Die Dateien officeXP.xml und officeXP_ActionContentInfo.xml werden erstellt.

    xml-Beispielformatvorlagen, WindowsMSIBundle.xml und ActionInfo.xml, finden Sie unter /opt/novell/zenworks/share/zman/samples/bundles auf einem Linux-Server und unter „%ZENWORKS_HOME%:\Novell\Zenworks\share\zman\samples\bundles auf einem Windows-Server. Weitere Informationen zu ActionContentInfo.xml finden Sie unter Abschnitt 2.5.3, Verstehen des XML-Dateiformats für zman-Bundles.

    Wenn Sie ein neues Bundle mit neuen Daten erstellen möchten, fahren Sie mit Schritt 3 fort. Wenn Sie ein neues Bundle mit den gleichen Daten wie das Bundle „officeXP“ erstellen möchten, fahren Sie mit Schritt 4 fort.

  3. Bearbeiten Sie die Dateien officeXP.xml und officeXP_ActionContentInfo.xml entsprechend Ihren Anforderungen.

    Um beispielsweise ein neues Bundle zu erstellen, installieren Sie ApplicationX und dessen Support-Pack und führen Sie die folgenden Schritte aus:

    • Ändern Sie in der Datei officeXP_ActionContentInfo.xml alle Referenzen von officeXP.msi in ApplicationX.msi.

    • Erstellen Sie ein weiteres Bundle mit dem Namen „ApplicationX-SP1“, das das Support-Pack für ApplicationX installiert.

    • Ändern Sie den Pfad des abhängigen Bundles „OfficeXPSP1“ in der Datei officeXP_ActionContentInfo.xml, um sowohl ApplicationX als auch das Support-Pack zu installieren.

    Im Folgenden finden Sie ein Beispiel für die Datei officeXP_ActionContentInfo.xml:

    <ActionInformation>
    
       <ActionSet type="Install">
    
            <Action name="Install MSI" index="1">
    
                <Content>              
    
                    <ContentFilePath includeAllFilesinFolder="false"
    
    includeAllFilesinSubFolders="false">E:\files\ApplicationX.msi</ContentFilePath>
    
                </Content>                            
    
            </Action>
    
            <Action name="Install Bundle" index="2">
    
             <DependentBundlePath>bundlefolder/ApplicationX-SP1</DependentBundlePath>             
    
            </Action>
    
        </ActionSet>
    
        <ActionSet type="Uninstall">
    
            <Action name="Undo Install Actions" index="1">
    
                <Content>                
    
                    <ContentFilePath includeAllFilesinFolder="false" includeAllFilesinSubFolders="false">E:\files\ApplicationX.msi</ContentFilePath>
    
                </Content>
    
            </Action>
    
        </ActionSet>
    
    </ActionInformation>
    
  4. Erstellen Sie ein Bundle unter Verwendung des folgenden Befehls:

    zman bundle-create neuer_bundle_name bundle_xml_dateiname.xml bundle_ordner --actioninfo bundle_name_ActionContentInfo.xml

    Wenn Sie den Ordner für das neue Bundle nicht angeben, wird das Bundle im Stammordner für Bundles (standardmäßig /Bundles) erstellt.

    Mit dem folgenden Befehl erstellen Sie zum Beispiel das Bundle „ApplicationX“ im Stammordner /Bundles:

    zman bundle-create ApplicationX officeXP.xml --actioninfo officeXP_ActionContentInfo.xml

    Sie können auch den Ordner angeben, in dem das Bundle erstellt werden soll.

    Mit dem folgenden Befehl erstellen Sie zum Beispiel das Bundle „ApplicationY“ im Ordner Software unter dem Stammordner /Bundles:

    zman bundle-create ApplicationY officeXP.xml /Bundles/Software --actioninfo officeXP_ActionContentInfo.xml

2.5.3 Verstehen des XML-Dateiformats für zman-Bundles

Der Befehl bundle-export-to-file serialisiert die Bundle-Informationen, die in der Datenbank gespeichert sind, in eine XML-Datei. Jedes Bundle enthält Aktionen, die zu Aktionssätzen, wie zum Beispiel Installieren oder Starten, gruppiert sind. Eine exportierte Bundle-XML-Datei enthält Informationen für das Bundle, darunter UID, Name, Pfad, Primärer Typ, Teiltyp, Kategorie, Systemanforderungen, sowie Informationen zu allen Aktionssätzen und deren Aktionen. Die Datei enthält weder Informationen über die Zuweisung des Bundles zu Geräten oder Benutzern noch Zusatzimages für das Bundle.

Eine xml-Beispielformatvorlage, WindowsMSIBundle.xml, finden Sie unter /opt/novell/zenworks/share/zman/samples/bundles auf einem Linux-Server und unter "%ZENWORKS_HOME%:\Novell\Zenworks\share\zman\samples\bundles auf einem Windows-Server.

HINWEIS:Falls die exportierte XML-Datei Zeichen des erweiterten ASCII-Codes enthält, müssen Sie die UTF-8- statt der ANSI-Codierung verwenden, um die Datei in einem Editor zu öffnen. Der Grund dafür ist, dass ANSI die Zeichen des erweiterten ASCII-Codes nicht richtig darstellt.

Wenn Sie ein Bundle aus einer XML-Datei erstellen, verwendet zman die Informationen, die in den Dateielementen <Description>, <SubType>, <Category> und <ActionSets> sowie <SysReqs> angegeben werden. Die Werte für „Name“ und den übergeordneten Ordner werden der Befehlszeile entnommen. Für die restlichen Elemente werden die Standardwerte verwendet.

Befolgen Sie die nachstehenden Richtlinien, wenn Sie mit der XML-Datei arbeiten:

  • Wenn Sie ein Bundle ohne Dateiinhalt oder Abhängigkeit von einem anderen Bundle erstellen möchten, brauchen Sie nur die Bundle-XML-Datei, um ein Bundle zu erstellen.

  • Wenn Sie ein Bundle mit Inhalt oder Abhängigkeit von einem anderen Bundle erstellen möchten, benötigen Sie eine zusätzliche XML-Datei, die den Pfad zur Inhaltsdatei oder zum abhängigen Bundle als Argument zur Option --actioninfo des Befehls bundle-create enthält.

    Eine xml-Beispielformatvorlage, ActionInfo.xml, finden Sie unter /opt/novell/zenworks/share/zman/samples/bundles auf einem Linux-Server und unter "%ZENWORKS_HOME%:\Novell\Zenworks\share\zman\samples\bundles auf einem Windows-Server.

  • Wenn Sie das Aktionselement <Data> in der exportierten XML-Datei bearbeiten möchten, vergewissern Sie sich, dass die neuen Datein korrekt und mit dem Schema konform sind. Das zman-Dienstprogramm führt nur eine minimale Validierung der Daten durch und überprüft diese nicht auf Fehler. So wird das Bundle zwar erfolgreich erstellt, enthält aber möglicherweise ungültige Daten. In diesem Fall funktioniert das Bundle auf einem verwalteten Gerät nicht ordnungsgemäß.

  • Der Dateiinhalt oder die Bundle-Abhängigkeiten sind mit einer bestimmten Aktion im Element <ActionSet> verknüpft. Die XML-Datei mit den Aktionsinhaltsinformationen sollte den Pfad der Datei, mit der der Dateiinhalt verknüpft werden soll, sowie den Index der Aktion im Element <ActionSet> enthalten.

    Beispielsweise ist die MSI-Datei, die bei der Erstellung des Windows-MSI-Bundles installiert sein muss, mit der ersten Aktion „MSI Installieren“ im installationsbezogenen Aktionssatz des erstellten Windows-MSI-Bundles verknüpft.

  • Das Element <ActionSet> wird vom Attribut type spezifiziert. Dieses Attribut sollte in der Bundle-XML-Datei denselben Wert haben.

  • Das Element <Action> hat ein optionales Namensattribut, das der Leserlichkeit dient.

  • Das Attribut index ist erforderlich. Es spezifiziert die Aktion, mit der der Inhalt oder die Abhängigkeit verknüpft werden soll. Der Wert des Attributs „index“ der ersten Aktion in <ActionSet> ist 1.

  • Jede Aktion kann mehrere <Content>-Elemente haben, von denen jedes ein <ContentFilePath>-Element enthält. Das Element <ContentFilePath> enthält den Pfad des Dateiinhalts, der mit der Aktion verknüpft werden soll. Vergewissern Sie sich, dass der Dateiname dem in der Bundle-XML-Datei unter <Data> angegebenen Dateinamen für diese Aktion entspricht.

  • Vergewissern Sie sich, dass die Reihenfolge der <Content>-Elemente der Reihenfolge der Elemente in der Bundle-XML-Datei entspricht. Das Windows-MSI-Bundle sollte beispielsweise die MSI-Datei im ersten <Content>-Element enthalten, gefolgt von <Content>-Elementen mit dem Pfad zu den MST-Dateien in der Reihenfolge, die unter <Data> für diese Aktion angegeben wurde.

  • Bei der Erstellung von Windows-MSI-Bundles können Sie alle Dateien im Ordner oder in den Unterordnern aufnehmen, indem Sie die Attribute für includeAllFilesinFolder und includeAllFilesinSubFolders auf „Wahr“ setzen. Die Abhängigkeit von einem anderen Bundle können Sie bestimmen, indem Sie den Bundle-Pfad als Wert des <DependentBundlePath>-Elements angeben. Der Pfad des Bundles sollte wie unten angezeigt relativ zu /Bundles angegeben werden.

    <ActionSet type="Install">
    
    <Action name="Install MSI" index="1">
    
    <Content>
    
    <ContentFilePath includeAllFilesinFolder="false" includeAllFilesinSubFolders="false">E:\files\ApplicationX.msi</ContentFilePath>
    
    </Content>
    
    <Content>
    
    <ContentFilePath includeAllFilesinFolder="false"
    
    includeAllFilesinSubFolders="false">E:\files\ApplicationX_MST1.mst</ContentFilePath>
    
    </Content>
    
    </Action>
    
    <Action name="Install Bundle" index="2">
    
    <DependentBundlePath>bundlefolder/ApplicationX-SP1</DependentBundlePath>
    
    </Action>
    
    </ActionSet>
    
  • Um die UID eines Objekts zu erhalten, verwenden Sie den Befehl object-get-GUID. Sie müssen in den folgenden Szenarios die Objekt-UIDs manuell in der Bundle-XML-Datei bearbeiten:

    • In der Systemanforderung „Bundle installiert“ müssen der Pfad und die UID des Bundles im <BundleInstalledReq>-Element unter dem <SysReqs>-Element geändert werden.

    • Im Imaging-Bundle muss die UID des Servers, der die .img-Datei enthält, in den ZENworks-Aktionen „Image-Satz“ und „Multicast-Image-Satz“ manuell geändert werden. Auch die UID der verknüpften Anwendungen muss manuell in den Aktionen „Verknüpftes Anwendungs-Bundle“ und „Multicast-Image-Satz“ geändert werden. Vergewissern Sie sich, dass das verknüpfte Bundle bereits über ein manuell erstelltes Add-on-Image verfügt, da es nicht automatisch erstellt wird, wenn das Bundle mit dem Image-Bundle verknüpft wird.