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 網站

  2. 使用下列指令將套裝軟體輸出到 XML 檔案:

    zman bundle-export-to-file 套裝軟體名稱 套裝軟體檔名.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.com 變更為 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 新套裝軟體名稱 套裝軟體 xml 檔名.xml

    例如,若要建立 yahoo 套裝軟體,請在主控台提示符處輸入 zman bundle-create yahoo google.xml 指令。

2.5.2 建立包含內容並與其他套裝軟體相依的套裝軟體

  1. 在「ZENworks 控制中心」中建立兩個套裝軟體。

    例如,使用「ZENworks 控制中心」建立名為 officeXP 和 officeXPSP1 的兩個 MSI 應用程式套裝軟體。officeXP 套裝軟體會透過 MSI 安裝 Microsoft Office XP。officeXPSP1 套裝軟體會安裝 Microsoft Office XP 的 Service Pack 1。在 officeXP 套裝軟體中,新增「安裝套裝軟體」動作以安裝 officeXPSP1。

  2. 使用下列指令,將與其他套裝軟體相依的套裝軟體輸出至 XML 檔:

    zman bundle-export-to-file 套裝軟體名稱 套裝軟體檔名.xml

    這會建立套裝軟體檔名.xml套裝軟體檔名_ActionContentInfo.xml 兩個檔案。

    例如,使用 zman bundle-export-to-file officeXP officeXP.xml 指令將 officeXP 套裝軟體輸出到 officeXP.xml。即會建立 officeXP.xmlofficeXP_ActionContentInfo.xml 兩個檔案。

    範例 xml 格式範本、WindowsMSIBundle.xmlActionInfo.xml 位於 Linux 伺服器上的 /opt/novell/zenworks/share/zman/samples/bundles 以及 Windows 伺服器上的 %ZENWORKS 主目錄%\Novell\Zenworks\share\zman\samples\bundles 中。如需 ActionContentInfo.xml 的詳細資訊,請參閱節 2.5.3, 瞭解 zman 套裝軟體 XML 檔案格式

    若要使用新的資料建立新套裝軟體,則繼續執行步驟 3。若要使用與 officeXP 套裝軟體相同的資料建立新套裝軟體,則跳至步驟 4

  3. 根據要求修改 officeXP.xmlofficeXP_ActionContentInfo.xml 兩個檔案。

    例如,若要建立新套裝軟體以安裝 ApplicationX 及其支援套件,請執行以下操作:

    • officeXP_ActionContentInfo.xml 檔案中所有對 officeXP.msi 的參考變更為 ApplicationX.msi

    • 建立另一個名為 ApplicationX-SP1 的套裝軟體,用以安裝 Application X 的支援套件。

    • 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 新套裝軟體名稱 套裝軟體 xml 檔名.xml 套裝軟體位置 --actioninfo 套裝軟體名稱_ActionContentInfo.xml

    如果不指定建立套裝軟體的位置,預設會在根資料夾 (/套裝軟體) 中建立。

    例如,使用以下指令在根資料夾 (/套裝軟體) 中建立套裝軟體 ApplicationX:

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

    您也可以指定要在其中建立套裝軟體的資料夾。

    例如,使用以下指令在根資料夾下的「軟體」資料夾 (/套裝軟體/軟體) 中建立套裝軟體 ApplicationY:

    zman bundle-create ApplicationY officeXP.xml /套裝軟體/軟體 --actioninfo officeXP_ActionContentInfo.xml

2.5.3 瞭解 zman 套裝軟體 XML 檔案格式

bundle-export-to-file 指令會將儲存在資料庫中的套裝軟體資訊序列化到 XML 檔案中。每個套裝軟體包含的動作都會歸類至「安裝」與「啟動」等動作集。輸出的套裝軟體 XML 檔案中包含 UID、名稱、路徑、主類型、子類型、類別及系統要求等套裝軟體的資訊,以及所有 ActionSet 及其動作的相關資訊。但不包含套裝軟體的設備或使用者指定以及附加影像等資訊。

範例 XML 格式範本 WindowsMSIBundle.xml 位於 Linux 伺服器上的 /opt/novell/zenworks/share/zman/samples/bundles 以及 Windows 伺服器上的 %ZENWORKS 主目錄%\Novell\Zenworks\share\zman\samples\bundles 中。

附註:若輸出的 XML 檔案中包含 ASCII 擴充字元,則必須使用 UTF-8 編碼而非 ANSI 編碼將其在編輯器中開啟,原因是 ANSI 編碼會將 ASCII 擴充字元顯示為亂碼。

從 XML 檔案建立套裝軟體時,zman 會使用在該檔案的 <Description><SubType><Category><ActionSets> 以及 <SysReqs> 等元素中指定的資訊。「名稱」與「父資料夾」的值取自指令行。其餘的元素會使用預設值。

遵循以下指南對 XML 檔案進行操作:

  • 若要建立不包含檔案內容或者不與其他套裝軟體相依的套裝軟體,只需要有套裝軟體 XML 檔案即可建立套裝軟體。

  • 若要建立包含內容或者與其他套裝軟體相依的套裝軟體,則必須提供附加 XML 檔案 (內含內容檔案或相依套裝軟體的路徑) 做為 bundle-create 指令之 --actioninfo 選項的引數。

    範例 XML 格式範本 ActionInfo.xml 位於 Linux 伺服器上的 /opt/novell/zenworks/share/zman/samples/bundles 以及 Windows 伺服器上的 %ZENWORKS 主目錄%\Novell\Zenworks\share\zman\samples\bundles 中。

  • 若要修改輸出之 XML 檔案中動作的 <Data> 元素,請確保新的資料正確無誤且符合綱要。zman 公用程式只對資料做最低驗證,不會檢查資料中是否有錯。因此,成功建立的套裝軟體中也可能包含無效的資料。此類套裝軟體在部署到受管理設備時會失敗。

  • 檔案內容或套裝軟體相依性與 <ActionSet> 中的特定動作相關聯。動作內容資訊 XML 檔案應包含檔案內容將關聯之檔案的路徑,以及 <ActionSet> 中動作的索引。

    例如,要在建立 Windows MSI 套裝軟體時安裝的 MSI 檔案會關聯到該 Windows MSI 套裝軟體之「安裝」動作集中的首個「安裝 MSI」動作。

  • <ActionSet>type 屬性指定。它應當與套裝軟體 XML 檔案的「動作集」類型相同。

  • <Action> 元素具有名稱屬性,該屬性可選,目的是便於使用者理解。

  • index 屬性為必要項目。它指定內容或相依項應關聯的動作。<ActionSet> 中首個動作的索引值為 1。

  • 每個動作均具有多個 <Content> 元素,每個元素又都包含 <ContentFilePath> 元素。<ContentFilePath> 元素包含了要與動作關聯之檔案內容的路徑。請確保檔名與套裝軟體 XML 檔案中該動作的 <Data> 中所指定的檔名相同。

  • 請確保 <Content> 元素的順序與套裝軟體 XML 檔案中的順序一致。例如,在 Windows MSI 套裝軟體中,MSI 檔案須置於首個 <Content> 元素中,其後的 <Content> 元素包含 MST 檔案的路徑 (依照該動作的 <Data> 中所指定的順序)。

  • 為了建立「Windows MSI」套裝軟體,可以透過設定 includeAllFilesinFolderincludeAllFilesinSubFolders 屬性為 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:

    • 對於「已安裝套裝軟體」系統要求,必須變更 <SysReqs> 元素下 <BundleInstalledReq> 元素中套裝軟體的路徑與 UID。

    • 對於影像集,必須在「ZENworks 影像」與「多路廣播影像集」動作中手動變更包含 .img 檔案之伺服器的 UID。此外,必須在「連結的應用程式套裝軟體」與「多路廣播影像集」動作中手動變更連結之應用程式套裝軟體的 UID。請確保連結的套裝軟體已具有手動建立的附加影像,因為在套裝軟體連結到影像套裝軟體時,系統不會自動建立附加影像。