2.5 zmanコマンドラインユーティリティの使用によるバンドルの作成

ZENworks Configuration Managementでは、Windowsバンドル、ファイルバンドル、ディレクティブバンドル、およびイメージングバンドルなど、さまざまなタイプのバンドルを作成できます。各バンドルには、それぞれ独自のデータ セットと環境設定があります。データをコマンドラインの引数として渡すのは複雑であるため、zmanユーティリティはXMLファイルを入力としてバンドルを作成します。zmanコマンドラインユーティリティを使用してバンドルを作成するには、ZENworksコントロールセンターで作成された同じタイプのバンドルを持ち、XMLにエクスポートする必要があります。ZENworksコントロールセンターを使用してバンドルを作成する方法の詳細については、セクション 2.0, バンドルの作成を参照してください。エクスポートされたXMLファイルはテンプレートとして使用して、zmanを使用してバンドルを作成できます。

たとえば、ZENworksコントロールセンターですでに作成されたファイルバンドルをXMLファイルにエクスポートし、これを使用してzmanで別のファイルバンドルを作成できます。

バンドルは、これに関連付けられているファイルコンテンツを持つことができます。たとえば、インストールされるMSIファイルは、Windows MSIバンドルと関連付けられているファイルコンテンツです。

バンドルは他のバンドルに対する従属関係も持てます。

zmanコマンドラインユーティリティを使用してバンドルを作成する場合は、次のセクションを参照してください。

2.5.1 コンテンツまたは別のバンドルへの従属性のないバンドルの作成

  1. ZENworksコントロールセンターでバンドルを作成します。

    たとえば、ZENworksコントロールセンターを使用して、Google Webサイトを起動するgoogleと呼ばれるWebアプリケーションバンドルを作成します。

  2. 次のコマンドを使用して、バンドルをXMLファイルにエクスポートします。

    zman bundle-export-to-file bundle_name bundle_filename.xml

    たとえば、zman bundle-export-to-file google google.xmlを使用して、googleバンドルをgoogle.xml にエクスポートします。

    新規データを使用して、新規バンドルを作成する場合は、ステップ 3に進んでください。googleバンドルと同じデータを使用して新規バンドルを作成する場合は、ステップ 4に進んでください。

  3. 要件に従ってXMLファイルを変更します。

    たとえば、次に示されているように、XMLファイルのLaunch ActionSetLaunch URL Actionセクションで、<URL>の値を http://www.google.co.inからhttp://www.yahoo.comに変更します。

       <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. 次のコマンドを使用して、新しいバンドルを作成します。

    zman bundle-create new_bundle_name bundle_xml_filename.xml

    たとえば、 yahooバンドルを作成するには、zman bundle-create yahoo google.xmlコマンドをコンソールプロンプトに入力します。

2.5.2 コンテンツや別のバンドルへの従属性のあるバンドルの作成

  1. ZENworksコントロールセンターで2つのバンドルを作成します。

    たとえば、ZENworksコントロールセンターを使用して、officeXPとofficeXPSP1と呼ばれる2つのMSIアプリケーションバンドルを作成します。officeXPバンドルは、MSIを通じてMicrosoft Office XPをインストールします。officeXPSP1バンドルは、Microsoft Office XPのService Pack 1をインストールします。officeXPバンドルで、[バンドルのインストール]アクションを追加してofficeXPSP1をインストールします。

  2. 別のバンドルに従属性のあるバンドルを、次のコマンドを使用してXMLファイルにエクスポートします。

    zman bundle-export-to-file bundle_name bundle_filename.xml

    これにより、bundle_filename.xmlおよびbundle_filename_ActionContentInfo.xml ファイルが作成されます。

    たとえば、zman bundle-export-to-file officeXP officeXP.xmlコマンドを使用して、officeXPバンドルをofficeXP.xmlにエクスポートします。officeXP.xmlファイルとofficeXP_ActionContentInfo.xmlファイルが作成されます。

    サンプルのxml形式のテンプレートであるWindowsMSIBundle.xmlおよびActionInfo.xmlは、 /opt/novell/zenworks/share/zman/samples/bundles(Linuxサーバ)および"%ZENWORKS_HOME%\Novell\Zenworks\share\zman\samples\bundles(Windowsサーバ)で利用できます。ActionContentInfo.xmlの詳細については、セクション 2.5.3, zmanバンドルXMLファイル形式の理解を参照してください。

    新規データを使用して、新規バンドルを作成する場合は、ステップ 3に進んでください。officeXPバンドルと同じデータを使用して、新規バンドルを作成する場合は、ステップ 4に進んでください。

  3. 要件に従って、officeXP.xmlおよびofficeXP_ActionContentInfo.xmlファイルを変更します。

    たとえば、ApplicationXおよびそのサポートパックをインストールするための新規バンドルを作成するには、次の手順に従います。

    • officeXP_ActionContentInfo.xmlファイルで、officeXP.msiのすべての参照をApplicationX.msi に変更します。

    • Application XのサポートパックをインストールするApplicationX-SP1と呼ばれる別のバンドルを作成します。

    • officeXP_ActionContentInfo.xml で、従属するOfficeXPSP1バンドルのパスをApplicationX-SP1に変更して、ApplicationXおよびそのサポートパックをインストールします。

    サンプル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. 次のコマンドを使用してバンドルを作成します。

    zman bundle-create new_bundle_name bundle_xml_filename.xml --actioninfo bundle_name_ActionContentInfo.xml

    たとえば、次のコマンドを使用して、ApplicationXと呼ばれるバンドルを作成します。

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

2.5.3 zmanバンドルXMLファイル形式の理解

bundle-export-to-fileコマンドは、データベースに保存されるバンドル情報をXMLファイルにシリアル化します。各バンドルには、[インストール]や[起動]などのアクションセットにグループ化されたアクションが含まれます。エクスポートされるXMLファイルには、UID、名前、パス、プライマリタイプ、、サブタイプ、カテゴリ、システム要件、およびアクションセットやそれらのアクションについての情報など、バンドルに関する情報が含まれます。ファイルには、デバイスまたはユーザに対するバンドルの割り当て、およびバンドルのアドオンイメージについての情報は含まれていません。

サンプルのXML形式のテンプレートであるWindowsMSIBundle.xmlは、 /opt/novell/zenworks/share/zman/samples/bundles(Linuxサーバ)および"%ZENWORKS_HOME%\Novell\Zenworks\share\zman\samples\bundles(Windowsサーバ)で利用できます。

メモ:エクスポートされるXMLファイルに拡張ASCII文字が含まれている場合、ANSIエンコーディングでは拡張ASCII文字が文字化けとして表示されるため、ANSIエンコーディングではなくUTF-8エンコーディングを使用して、エディタで開く必要があります。

XMLファイルからバンドルを作成する場合、zmanでは、ファイルの<Description><SubType><Category><ActionSets><SysReqs>の要素で指定されている情報を使用します。[名前]および[親フォルダ]の値は、コマンドラインラインから取得されます。残りの要素に対しては、デフォルト値が使用されます。

XMLファイルで作業するには、下記にリストされたガイドラインに従ってください。

  • ファイルコンテンツまたは別のバンドルへの従属のないバンドルを作成する場合は、バンドルを作成するのに必要なのはバンドルXMLファイルだけです。

  • コンテンツまたは別のバンドルへの従属性のあるバンドルを作成する場合、bundle-createコマンドの--actioninfoオプションの引数として、コンテンツファイルまたは従属バンドルのパスが含まれる追加のXMLファイルを提供する必要があります。

    サンプルXMLフォーマットテンプレートであるActionInfo.xmlは、 /opt/novell/zenworks/share/zman/samples/bundles(Linuxサーバの場合)およびZENworks_Installation_directory:\Novell\ Zenworks\share\zman\ samples\bundles (Windowsサーバの場合)にあります。

  • エクスポートされたXMLファイルで、アクションの<Data>要素を変更するには、新しいデータが正しく、スキーマに準拠していることを確認します。zmanユーティリティはデータの最低限の検証は行いますがデータ内のエラーチェックは行いません。したがって、バンドルは正常に作成されても、無効なデータの場合もあります。このようなバンドルは、管理対象デバイスに展開されると失敗します。

  • ファイルコンテンツまたはバンドル従属性は、<ActionSet>の特定のアクションと関連付けられています。アクションコンテンツ情報XMLファイルには、ファイルコンテンツが関連付けられているファイルのパスおよび<ActionSet>のアクションのインデックスが含まれている必要があります。

    たとえば、Windows MSIバンドルを作成する際インストールされるMSIファイルは、作成されたWindows MSIバンドルのインストールアクションセットの最初のMSIのインストールアクションに関連付けられます。

  • <ActionSet>type属性によって指定されます。これは、バンドルXMLファイルのアクションセットタイプと同じである必要があります。

  • <Action>要素には名前属性があり(オプション)、ユーザによって読みやすいようになっています。

  • index属性は必須です。コンテンツまたは従属性が関連付けられているアクションを指定します。<ActionSet>の最初のアクションのインデックス値は1です。

  • 各アクションには複数の<Content>要素があり、それぞれ<ContentFilePath>要素が含まれています。<ContentFilePath>要素には、アクションに関連付けられるファイルコンテンツのパスが含まれています。ファイル名が、そのアクションに対する<Data>のバンドルXMLファイルで指定されているファイル名と同じであることを確認します。

  • <Content>要素の順序が、バンドルXMLファイルでの順序に対応していることを確認します。たとえば、Windows MSIバンドルには、最初の<Content>要素にMSIファイルがあり、次にそのアクションに対して<Data>で指定されている順序でMSTファイルへのパスを持つ<Content>要素が続いています。

  • Windows MSIバンドルを作成する場合、includeAllFilesinFolderおよびincludeAllFilesinSubFoldersの属性をTrueに設定して、フォルダまたはサブフォルダのすべてのファイルを含めることができます。別のバンドルへの従属性は、バンドルパスに<DependentBundlePath>要素の値を与えることで指定できます。指定されたバンドルのパスは、次のように/バンドルに相対的である必要があります。

    <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>
    
  • オブジェクトのUIDを取得するには、object-get-GUIDコマンドを使用します。次のシナリオでは、バンドルXMLファイルのオブジェクトUIDを手動で編集する必要があります。

    • [バンドルインストール済み]システム要件では、バンドルのパスおよびUIDは<SysReqs>要素の下の<BundleInstalledReq>要素で変更される必要があります。

    • イメージングバンドルでは、.imgファイルが含まれるサーバのUIDは、[ZENworksイメージ]および[マルチキャストイメージセット]アクションで手動で変更する必要があります。また、リンクされたアプリケーションバンドルのUIDは、[リンクされたアプリケーションバンドル]および[マルチキャストイメージセット]のアクションで手動で変更する必要があります。バンドルがイメージバンドルにリンクされる際に自動的に作成されるわけではないため、リンクされたバンドルに手動で作成されたアドオンイメージがすでに存在することを確認します。