2.5 Criando bundles usando o utilitário de linha de comando zman

O ZENworks Configuration Management permite criar diferentes tipos de bundles, como o do Windows, de Arquivo, de Diretiva e de Criação de Imagens. Cada bundle tem o próprio conjunto de dados e configurações. Como é complicado repassar os dados como argumentos na linha de comando, o utilitário zman considera os arquivos XML como uma entrada para criar bundles. Para usar o Utilitário de Linha de Comando zman para criar um bundle, é necessário ter um bundle do mesmo tipo já criado por meio do ZENworks Control Center e exportá-lo para XML. Para obter mais informações sobre como criar bundles usando o ZENworks Control Center, consulte o Seção 2.0, Criando bundles. Você pode usar o arquivo XML exportado como gabarito para criar bundles usando o zman.

Por exemplo, é possível exportar um bundle de Arquivo já criado através do ZENworks Control Center para um arquivo XML e usá-lo para criar outro bundle de Arquivo com o zman.

Um bundle pode ter um conteúdo de arquivo associado a ele. Por exemplo, um arquivo MSI a ser instalado é um conteúdo de arquivo associado a um Bundle MSI do Windows.

Os bundles também podem ter dependências em outros bundles.

Analise as seções a seguir para criar um bundle usando o Utilitário de Linha de Comando zman:

2.5.1 Criando um bundle sem conteúdo ou dependência de outro bundle

  1. Crie um bundle no ZENworks Control Center.

    Por exemplo, use o ZENworks Control Center para criar um bundle de Aplicativo Web chamado google, que inicia o site do Google.

  2. Exporte o bundle para um arquivo XML usando o seguinte comando:

    zman bundle-export-to-file nome_do_bundle arquivo_do_bundle.xml

    Por exemplo, exporte o bundle google para o arquivo google.xml usando o comando zman bundle-export-to-file google google.xml.

    Se você quiser criar um novo bundle com novos dados, continue na Etapa 3. Se você criar um novo bundle com os dados do bundle google, passe para a Etapa 4.

  3. Modifique o arquivo XML de acordo com seus requisitos.

    Por exemplo, mude o valor de <URL> de http://www.google.com para http://www.yahoo.com na seção Launch URL Action de Launch ActionSet no arquivo XML, conforme mostrado abaixo.

       <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. Crie um novo bundle usando o seguinte comando:

    zman bundle-create nome_do_novo_bundle arquivo_XML_do_bundle

    Por exemplo, para criar o bundle yahoo, digite o comando zman bundle-create yahoo google.xml no prompt do console.

2.5.2 Criando um bundle com conteúdo e dependência de outro bundle

  1. Crie dois bundles no ZENworks Control Center.

    Por exemplo, use o ZENworks Control Center para criar dois bundles de aplicativo MSI chamados officeXP e officeXPSP1. O bundle officeXP instala o Microsoft Office XP através de um MSI. O bundle officeXPSP1 instala o Service Pack 1 do Microsoft Office XP. No bundle officeXP, adicione uma ação Instalar Bundle para instalar o officeXPSP1.

  2. Exporte o bundle, que tem a dependência de outro bundle, para um arquivo XML usando o seguinte comando:

    zman bundle-export-to-file nome_do_bundle arquivo_do_bundle.xml

    Essa ação cria os arquivos nome_do_arquivo_de_bundle.xml e nome_do_arquivo_de_bundle_ActionContentInfo.xml.

    Por exemplo, exporte o bundle officeXP para o arquivo officeXP.xml usando o comando zman bundle-export-to-file officeXP officeXP.xml. Os arquivos officeXP.xml e officeXP_ActionContentInfo.xml são criados.

    Os gabaritos de exemplo no formato xml, WindowsMSIBundle.xml e ActionInfo.xml, estão disponíveis em /opt/novell/zenworks/share/zman/samples/bundles em um servidor Linux e em diretório_de_instalação_do_ZENworks:\Novell\Zenworks\ share\zman\ samples\bundles em um servidor Windows. Para obter mais informações sobre oActionContentInfo.xml, consulte a Seção 2.5.3, Entendendo o formato de arquivo XML do bundle do zman.

    Se você quiser criar um novo bundle com novos dados, continue na Etapa 3. Se você criar um novo bundle com os mesmos dados do bundle officeXP, passe para a Etapa 4.

  3. Modifique os arquivos officeXP.xml e officeXP_ActionContentInfo.xml de acordo com seus requisitos.

    Por exemplo, para criar um novo bundle para instalar o ApplicationX e o respectivo Support Pack, siga este procedimento:

    • Altere todas as referências do officeXP.msi ao ApplicationX.msi no arquivo officeXP_ActionContentInfo.xml.

    • Crie outro bundle chamado ApplicationX-SP1 que instala o Support Pack para o ApplicationX.

    • Mude o caminho do bundle OfficeXPSP1 dependente para ApplicationX-SP1 no arquivo officeXP_ActionContentInfo.xml para instalar tanto o ApplicationX quanto seu Support Pack.

    A seguir está um exemplo de 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. Crie um bundle usando o seguinte comando:

    zman bundle-create nome_do_novo_bundle nome_do_arquivo_xml_do_bundle.xml local_do_bundle --actioninfo nome_do_bundle_ActionContentInfo.xml

    Se você não especificar o local da criação do bundle, o bundle será criado na pasta raiz (/Bundles) por padrão.

    Por exemplo, use o seguinte comando para criar um bundle denominado ApplicationX na pasta raiz (/Bundles):

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

    Você também pode especificar a pasta na qual o bundle deve ser criado.

    Por exemplo, use o seguinte comando para criar um bundle denominado ApplicationY na pasta Software sob a pasta raiz (/Bundles/Software):

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

2.5.3 Entendendo o formato de arquivo XML do bundle do zman

O comando bundle-export-to-file serializa as informações do bundle, que são armazenadas no banco de dados, em um arquivo XML. Cada bundle contém ações que são agrupadas em conjuntos de ações como Instalar e Iniciar. Um arquivo XML do bundle exportado contém informações para o bundle, como UID, Nome, Caminho, Tipo Primário, Subtipo, Categoria, Requisitos do Sistema e informações sobre todos os ActionSets e suas ações. O arquivo não inclui informações sobre designação do bundle a dispositivos ou usuários e imagens de expansão para o bundle.

Um gabarito de exemplo no formato XML, WindowsMSIBundle.xml, está disponível em /opt/novell/zenworks/share/zman/samples/bundles em um servidor Linux e em diretório_de_instalação_do_ZENworks:\Novell\Zenworks\share\zman\ samples\bundles em um servidor Windows.

NOTA:Se o arquivo XML exportado contiver caracteres ASCII estendidos, abra-o em um editor usando a codificação UTF-8, em vez da codificação ANSI, porque esta exibe os caracteres ASCII estendidos embaralhados.

Quando você cria um bundle com o arquivo XML, o zman usa as informações especificadas nos elementos <Description>, <SubType>, <Category>, <ActionSets> e <SysReqs> do arquivo. Os valores do Nome e da Pasta Pai são extraídos da linha de comando. Para os elementos restantes, o valor padrão é usado.

Siga as diretrizes listadas abaixo para trabalhar com o arquivo XML:

  • Se quiser criar um bundle sem conteúdo de arquivo ou dependência de outro bundle, você precisará apenas do arquivo XML do bundle para criar um bundle.

  • Se quiser criar um bundle com conteúdo ou dependência de outro bundle, será necessário fornecer um arquivo XML adicional, que contém o caminho do arquivo de conteúdo ou o bundle dependente, como um argumento para a opção --actioninfo do comando bundle-create.

    Um gabarito de exemplo no formato XML, ActionInfo.xml, está disponível em /opt/novell/zenworks/share/zman/samples/bundles em um servidor Linux e em "%PASTA_PESSOAL_DO_ZENWORKS%:\Novell\Zenworks\share\zman\ samples\bundles em um servidor Windows.

  • Se quiser modificar o elemento <Data> das ações no arquivo XML exportado, verifique se os novos dados estão corretos e se estão em conformidade com o esquema. O utilitário zman faz uma validação mínima dos dados e não confere se há erros. Assim, o bundle pode ser criado com sucesso, mas com dados inválidos. Esse bundle falha quando distribuído em um dispositivo gerenciado.

  • O conteúdo do arquivo ou as dependências do bundle estão associadas a uma ação específica em <ActionSet>. O arquivo XML de Informações de Conteúdo de Ação deve conter o caminho do arquivo ao qual o conteúdo do arquivo deve se associar e o índice da ação no <ActionSet>.

    Por exemplo, o arquivo MSI a ser instalado ao criar o Bundle MSI do Windows está associado à primeira ação Instalar MSI do conjunto de ações Instalar do Bundle MSI do Windows criado.

  • O <ActionSet> é especificado pelo atributo type. Ele deve ser o mesmo do tipo Conjunto de Ações do arquivo XML do bundle.

  • O elemento <Action> tem um atributo de nome, que é opcional, para permitir a legibilidade do usuário.

  • O atributo index é obrigatório. Ele especifica a ação à qual o conteúdo ou a dependência deve ser associada. O valor do índice da primeira ação em <ActionSet> é 1.

  • Cada ação pode ter vários elementos <Content>, cada um contendo um elemento <ContentFilePath>. O elemento <ContentFilePath> contém o caminho do conteúdo de arquivo a ser associado à Ação. Verifique se o nome do arquivo é o mesmo especificado no arquivo XML do bundle em <Data> para essa ação.

  • Verifique se a ordem do elemento <Content> está de acordo com a ordem do arquivo XML do bundle. Por exemplo, o bundle MSI do Windows deve ter o arquivo MSI no primeiro elemento <Content>, seguido dos elementos <Content> com o caminho para os arquivos MST na ordem especificada em <Data> para essa ação.

  • Para criar bundles MSI do Windows, você pode incluir todos os arquivos na pasta ou nas subpastas definindo os atributos includeAllFilesinFolder e includeAllFilesinSubFolders como Verdadeiro. A dependência de outro bundle pode ser especificada com a indicação do caminho do bundle como um valor do elemento < DependentBundlePath>. O caminho do bundle especificado deve ser relativo a /Bundles conforme mostrado a seguir.

    <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>
    
  • Para obter o UID de um objeto, use o comando object-get-GUID. É necessário editar manualmente os UIDs de objeto no arquivo XML do bundle nas seguintes situações:

    • No requisito de sistema Bundle Instalado, o caminho e UID do bundle precisa ser alterado no elemento <BundleInstalledReq> do elemento <SysReqs>.

    • No bundle de Criação de Imagens, o UID do servidor que contém o arquivo .img precisa ser alterado manualmente nas ações Imagem do ZENworks e Conjunto de Imagens de Multicast. Além disso, o UID do bundle de aplicativo vinculado precisa ser alterado manualmente nas ações Bundle de Aplicativo Vinculado e Conjunto de Imagens de Multicast. Verifique se o bundle vinculado já tem uma imagem de expansão criada manualmente, porque ela não é criada automaticamente quando o bundle está vinculado ao bundle de imagem.