Gerenciamento do IBM SmartCloud Enterprise, Parte 2: Use e mantenha pacotes configuráveis de software com ICCT

Um pacote configurável do software é uma coleção de arquivos de instalação de software, arquivos de configuração e metadados que podem ser implementados em uma instância de máquina virtual. Neste artigo em duas partes, os autores demonstram como usar o IBM® Image Construction and Composition Tool (ICCT) para criar um pacote configurável de software e registrá-lo no IBM SmartCloud Enterprise. O ICCT realiza tarefas de registro e fornece um processo passo a passo e uma UI gráfica para criar de forma conveniente pacotes configuráveis de software, customizar instâncias de máquina virtual e capturar imagens. Na Parte 2, os autores mostram como criar uma imagem customizada com o pacote configurável criado na Parte 1.

Alex Amies, Senior Software Engineer, IBM

Alex Amies photoAlex Amies é engenheiro de software senior no Laboratório de Desenvolvimento IBM GTS na China. Atualmente, ele trabalha como arquiteto no design do IBM SmartCloud Enterprise. Anteriormente, ele atuou como arquiteto e desenvolvedor de produtos de nuvem e de segurança em outros grupos na IBM.



Scott Peddle, Advisory Software Developer, IBM

Photo of Scott PeddleScott Peddle é desenvolvedor conselheiro de software no IBM SmartCloud Enterprise. Scott lidera projetos que se concentram na integração do Rational Asset Manager dentro de um ambiente na nuvem. A experiência de Scott inclui a liderança de um projeto para integração das ferramentas do WebSphere BPM, como o WebSphere Business Modeler e o WebSphere Integration Developer por meio do Rational Asset Manager. Scott também foi um engenheiro de liberação para produtos de design e construção do Rational, como o Rational Software Architect e o Rational Application Developer.



Hidayatullah Shaikh, Senior Technical Staff Member, IBM

Shaikh é IBM Master Inventor e líder técnico do Business Support Systems para IBM SmartCloud Enterprise e ofertas do Enterprise+, com sede nos Estados Unidos.



Qiangguo Tong, Advisory Software Engineer, IBM

Qiang Guo Tong passou a fazer parte da IBM em 2004. Ele é um dos líderes da equipe de desenvolvimento do IBM SmartCloud Enterprise e responsável pela criação de novos recursos. Ele também é o arquiteto de solução para ativação de globalização do SmartCloud. Possui experiência técnica em globalização e também em tecnologias JavaEE. Ele tem mais de oito anos de experiência em desenvolvimento de aplicativos da web com base na arquitetura JavaEE e se concentra em tecnologias web 2.0 como Dojo, JSON-RPC.



Alexei Karve, Senior Software Engineer, IBM

Alexei Karve é engenheiro de software senior no IBM Thomas J Watson Research Center. É membro da equipe de design SmartCloud Enterprise, com foco em pacotes configuráveis de software e VPN/VLAN para sistemas de suporte de negócios na nuvem. Alexei tem ampla experiência com serviços de suporte operacional, virtualização e Tivoli Provisioning Manager. Possui um longo e variado histórico na área de gerenciamento de sistemas desde que passou a fazer parte da IBM em 1993.



Pan Xia Zou, Staff Software Engineer, IBM

Pan Xia Zou é engenheiro de software contratado na IBM e trabalha como arquiteto de automação de criação e implementação para o IBM SmartCloud Enterprise.



16/Ago/2012

Este artigo mostra como manter pacotes configuráveis de software no IBM SmartCloud Enterprise. Usando um exemplo, este artigo descreve como capturar uma nova imagem privada com um pacote configurável pré-instalado e usar o software em uma máquina virtual Linux®. Você deve ter uma familiaridade básica com conceitos de nuvem. Para tentar as etapas deste artigo, é necessária uma conta de usuário no IBM SmartCloud Enterprise.

NaParte 1, você aprendeu como criar pacotes configuráveis de software para máquinas virtuais no IBM SmartCloud Enterprise. Agora você usará esse pacote configurável para criar uma imagem customizada. Vamos direto ao assunto.

Criar uma imagem customizada

  1. Acesse a UI do ICCT, clique em Images > Build Images. Ou volte para a página de boas-vindas e clique em Build and Manage Images.
    Figura 1. Desenvolvendo imagens no ICCT
    Desenvolvendo imagens no ICCT
  2. Clique em Import from Cloud Provider.
  3. Selecione RedHat Enterprise Linux 6 64-bit no painel à esquerda e clique em Add para incluí-lo no painel Images to import. Clique em Import.
    Figura 2. Importar imagem do RedHat Enterprise Linux 6 de 64 bits
    Importar imagem do RedHat Enterprise Linux 6 de 64 bits
  4. Os metadados de imagem são importados e listados na área de janela à esquerda. Selecione a imagem para ver seus detalhes exibidos na área de janela à direita.
    Figura 3. Detalhes do RedHat Enterprise Linux 6 de 64 bits
    Detalhes do RedHat Enterprise Linux 6 de 64 bits
  5. Clique no ícone Extend na área de janela à direita, insira as informações e clique em Create. Isso inicia um novo Design de Imagem visível na área de janela à esquerda.
    Figura 4. Estender imagem
    Estender imagem
  6. No painel à direita, clique em Start Editing. É exibida uma mensagem de status de imagem dizendo "Out of Sync". Expanda a seção Software Bundles para incluir o pacote configurável do Google Chrome criado na Parte 1.
    Figura 5. Expanda Software Bundles
    Expanda Software Bundles
  7. Clique em Add Bundle. Aparece uma caixa de diálogo que permite selecionar pacotes configuráveis compatíveis com essa imagem. O Google Chrome está na lista.
    Figura 6. Incluir o pacote configurável Google Chrome na imagem
    Incluir o pacote configurável Google Chrome na imagem
  8. Selecione Google Chrome e clique em Add.
    Figura 7. GoogleChrome incluído no design da imagem
    GoogleChrome incluído no design da imagem
  9. Clique em Salvar, Done Editing e Synchronize. A página de acordo é exibida. Observe o pacote configurável local Enablement incluído pelo ICCT por padrão. Clique em I agree e, em seguida, clique em Done.
    Figura 8. Sincronizar imagem
    Sincronizar imagem
  10. ICCT chama as APIs do SmartCloud para fornecer a imagem de base. Após a instância ser criada, o ICCT faz download dos pacotes configuráveis e instala-os. Efetue login no SmartCloud Portal para ver as instâncias. É possível ver a instância temporária solicitando (veja o nome com um ID exclusivo após o nome da imagem RHEL6WithGoogleChrome) e, em seguida, em um estado de fornecimento no SmartCloud Portal. Pode ser necessário atualizar o Painel de Controle para ver o pacote configurável na lista após a instância ser fornecida.
    Figura 9. Fornecendo instância no SmartCloud após a sincronização
    Fornecendo instância no SmartCloud após a sincronização
  11. Quando a instância temporária é criada, seu status torna-se Active no portal do SmartCloud.
    Figura 10. Instância fornecida no SmartCloud após a sincronização
    Instância fornecida no SmartCloud após a sincronização
  12. Quando a instância fica ativa, o ICCT começa a instalar os pacotes configuráveis. É possível voltar à GUI do ICCT e clicar em Refresh para a imagem. O status da imagem exibe Synchronizing, com a seguinte mensagem abaixo: "Installing execution package on VM".
    Figura 11. Atualizar status da imagem em Image Construction and Composition Tool
    Atualizar status da imagem em Image Construction and Composition Tool
    Figura 12. Falha na sincronização com ICCT
    Falha na sincronização com ICCT

    Caso haja um erro, efetue login na instância temporária, verifique e corrija o erro nos scripts em RAM e no ICCT e clique novamente em Synchronize. A instância temporária antiga é excluída e uma nova é criada pelo ICCT.

    Figura 13. Sincronização bem-sucedida no ICCT
    Sincronização bem-sucedida no ICCT

O status da imagem passa a ser Synchronized quando o ICCT conclui a instalação dos pacotes configuráveis de software. É possível efetuar login na instância e verificar se o Google Chrome está instalado. Verifique o endereço IP da instância temporária no SmartCloud Portal com ${SmartCloud_VM} para que seja possível conectar-se por SSH na instância como idcuser.


Verifique se o Google Chrome está funcionando

Para verificar se o Google Chrome funciona nessa instância temporária:

  1. Inicie vncserver na instância e abra a porta 5901. Conecte-se usando vncviewer e inicie o Google Chrome. Use o seu endereço IP para as instruções, e não aquele mostrado no código.
    ssh idcuser@${SmartCloud_VM}
    Last login: Fri Mar  2 14:43:35 2012 from vhost4244.site2.compute.ihost.com
    [idcuser@vhost0134 ~]$ vncserver -geometry 1280x1024 -depth 16
  2. É necessária uma senha para acessar seus desktops.
    Password:
    Verify:
    xauth:  creating new authority file /home/idcuser/.Xauthority
    
    New 'vhost0134:1 (idcuser)' desktop is vhost0134:1
    
    Creating default startup script /home/idcuser/.vnc/xstartup
    Starting applications specified in /home/idcuser/.vnc/xstartup
    Log file is /home/idcuser/.vnc/vhost0134:1.log
    
    [idcuser@vhost0134 ~]$ sudo iptables -I INPUT -m state --state NEW -p
     tcp --destination-port 5901 -j ACCEPT
  3. Execute vncviewer ${SmartCloud_VM}:1 e start /opt/google/chrome/google-chrome para verificar se funciona.

Por segurança, em vez de usar o processo acima, é recomendável iniciar o VNC através de um túnel SSH, desta forma:

ssh -i ~/.ssh/key_name -L 5901:${SmartCloud_VM}:5901 idcuser@${SmartCloud_VM}

Em seguida, execute vncviewer localhost:1 e start /opt/google/chrome/google-chrome para verificar se funciona.

Figura 14. Inicie o Chrome na instância do SmartCloud
Inicie o Chrome na instância do SmartCloud

Feche o Google Chrome. Faça as alterações adicionais que você quer manter na instância e efetue logout.


Capturar uma imagem

Agora que a instância temporária está funcionando como esperado, capture isso como uma imagem, para não precisar reinstalar o Google Chrome em implementações posteriores.

  1. Clique no botão Capture no ICCT. A imagem passa para um estado de sincronização na GUI do ICCT.
    Figura 15. Usando Capture para criar uma imagem no ICCT
    Usando Capture para criar uma imagem no ICCT
  2. Uma notificação da imagem salva é listada na guia Instance da instância temporária no SmartCloud Portal.
    Figura 16. Notificação de imagem salva
    Notificação de imagem salva

    Isso inicia a captura de uma nova imagem privada com Google Chrome pré-instalado.

  3. Na guia Image no SmartCloud Portal, a nova imagem privada RHEL6WithGoogleChrome está no estado de captura.
    Figura 17. Capturando imagem no SmartCloud
    Capturando imagem no SmartCloud

    Após uma nova imagem ser capturada, é possível criar uma nova instância a partir da imagem capturada diretamente no SmartCloud Portal. A instância temporária é automaticamente excluída pelo ICCT.

  4. Quando a imagem mostrar o status Captured, atualize o Painel de Controle, retorne à guia Images e selecione a imagem capturada para ver os pacotes configuráveis da imagem. Os pacotes configuráveis são atualizados quando o ICCT atualiza o arquivo de Topologia Semântica do ativo de imagem RAM após a imagem ser capturada.
    Figura 18. Imagem disponível no SmartCloud
    Imagem disponível no SmartCloud

    A imagem com Google Chrome pré-instalado está agora disponível para criar novas instâncias.

  5. Ao clicar no ícone Refresh no ICCT, o status da imagem deve passar a ser Capture Complete.
    Figura 19. Captura completa no ICCT
    Captura completa no ICCT
  6. Os detalhes da imagem RHEL6WithGoogleChrome (ativo de Topologia de Modelo) podem ser verificados no RAM.
    Figura 20. Detalhes gerais do ativo de Topologia de Modelo no RAM
    Detalhes gerais do ativo de Topologia de Modelo no RAM
  7. Examinando o arquivo de topologia, Rhel6.1_x64.topology, é possível ver o link para o ativo GoogleChrome SoftwareBundle com o UUID do RAM e versão.
    Figura 21. Arquivo de topologia semântica para o ativo
    Arquivo de topologia semântica para o ativo
    Listagem 1. Arquivo de topologia semântica para ativo
    <core:unit uuid="_z79cOWSIEeG4Dsea31AM7A" name="bundle_455977"
     goalInstallState="installed" initInstallState="installed">
        <core:capability uuid="_z79cOmSIEeG4Dsea31AM7A" name="cap" linkType="any">
          <core:extendedAttribute uuid="_dZzakWSpEeG4Dsea31AM7A" name="symbolicName">
            <core:data xsi:type="xsd:string" uuid="_z79cO2SIEeG4Dsea31AM7A">
             <strong>com.google.chrome</strong>
            </core:data>
          </core:extendedAttribute>
          <core:extendedAttribute uuid="_dZzakmSpEeG4Dsea31AM7A" name="version">
            <core:data xsi:type="xsd:string" uuid="_z79cPGSIEeG4Dsea31AM7A">
             1.0.0
            </core:data>
          </core:extendedAttribute>
          <core:extendedAttribute uuid="_dZzak2SpEeG4Dsea31AM7A" name="bundleName">
            <core:data xsi:type="xsd:string" uuid="_z79cPWSIEeG4Dsea31AM7A">
             <strong>GoogleChrome</strong>
            </core:data>
          </core:extendedAttribute>
          <core:extendedAttribute uuid="_dZzalGSpEeG4Dsea31AM7A" name="bundleRepoId">
            <core:data xsi:type="xsd:string" uuid="_z79cPmSIEeG4Dsea31AM7A">
             <strong>ryo-asset://07356E0D-3868-1709-0F95-AD9FF0355FF4_1.0.0@
             https://www-147.ibm.com/cloud/enterprise/ram.ws</strong>
            </core:data>
          </core:extendedAttribute>
        </core:capability>
  8. Para usar a API REST para recuperar a lista de SwBundles anexados a uma imagem capturada:
    Listagem 2. Recuperar lista de SwBundles com a API REST
    curl -k -H 'Accept: application/json' -u <userid7gt;:<password>
     https://www-147.ibm.com/computecloud/enterprise/api/rest/20100331/
      offerings/image/${imageId}/swbundle
    where imageId is  20045166
    
    {"SwBundleImageDetails":
     [
      {"SwBundleNum":1,"SwBundlePricingDetails":
      {"rate":0,"unitOfMeasure":"UHR","countryCode":"897","effectiveDate":1313107200000,
       "currencyCode":"USD","pricePerQuantity":1},
      "RamUuid":"07356E0D-3868-1709-0F95-AD9FF0355FF4",
      "RamVersion":"1.0.0","name":"GoogleChrome","id":"2909","description":
      "Install Latest Google Chrome using yum"}
     ]
    }

Crie uma instância

Para usar a imagem capturada para criar uma instância:

  1. Conecte-se ao SmartCloud Portal. Selecione a imagem na guia Image e clique em Create Instance.
    Figura 22. Crie uma instância no SmartCloud
    Crie uma instância no SmartCloud
    Figura 23. Aceite o acordo
    Aceite o acordo
  2. Observe o nome da imagem e o pacote configurável do software exibidos na página do acordo. Clique em Submit.
    Figura 24. Envie a solicitação de instância ao SmartCloud
    Envie a solicitação de instância ao SmartCloud
  3. Quando a instância for fornecida, é possível verificar que o Google Chrome funciona da mesma forma que na instância temporária verificada anteriormente. Observe que pode ser necessário excluir /home/idcuser/.config/google-chrome/SingletonLock se você não fechou o navegador antes da captura.
    Figura 25. Criação da instância teve sucesso no SmartCloud
    Criação da instância teve sucesso no SmartCloud

Pensamentos e considerações finais

Os especialistas de software devem garantir que a primeira linha do script bash especifique o local do interpretador bash, expresso como #!/bin/bash. O Virtual System Activation Engine (VSAE), que aciona a execução dos scripts de configuração e reconfiguração, requer que o local do interpretador seja especificado. Do contrário, os scripts não são executados.

Caso optem por escrever os scripts em plataformas Windows, os especialistas de software devem garantir que a ferramenta dos2unix ou outra semelhante seja executada nos scripts antes de seu upload para o ICCT.

Um pacote configurável do software é transferido por download e instalado em uma instância pelo ICCT durante a criação da imagem virtual. O ativo de RAM Composable Software Bundle não é copiado automaticamente para a instância pelo SmartCloud durante o fornecimento. No entanto, o SmartCloud permite copiar arquivos do ativo Template Topology (imagem) para a instância, portanto, é possível realizar maiores customizações manuais atualizando o ativo do RAM de imagem Template Topology.

A imagem do Google Chrome não requer mais customização. No entanto, caso queira fazer pequenas alterações na instância durante o fornecimento sem usar o ICCT para recapturar uma nova imagem, é possível criar um clone dessa imagem e/ou atualizar o ativo Template Topology da imagem capturada.

Todos os scripts de ativação no ativo Template Topology devem ser empacotados na pasta activation_scripts do ativo no catálogo de ativos do IBM Rational. A pasta deve conter também um arquivo de texto chamado scripts.txt que descreve arquivos adicionais necessários para constituir a instância e onde armazená-los. O arquivo scripts.txt define pares de nome e valor dos scripts de ativação. O nome é o nome real do arquivo com o qual você está trabalhando, e o valor é o caminho completo e nome do arquivo que deverá estar na instância. O exemplo a seguir é o arquivo scripts.txt de uma imagem de servidor NFS Linux:

run_once.txt=/etc/init.d/cloud-startup3.sh config.txt=/etc/cloud/nfs_config.pl

Arquivos de script na pasta activation_scripts e incluídos em scripts.txt serão copiados para os diretórios especificados da instância antes de a instância ser iniciada. Se um dos arquivos de script já existir no sistema de arquivos da imagem, ele será sobrescrito pelo arquivo no catálogo de ativos do IBM Rational.


Conclusão

Nestes dois artigos, você aprendeu como criar e manter um pacote configurável de software usando ICCT no IBM SmartCloud Enterprise através do uso de um exemplo simples. Também viu como criar uma imagem com esse pacote configurável de software usando o ICCT.

Recursos

Aprender

Obter produtos e tecnologias

  • Avalie os produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na Ambiente de Simulação SOA aprendendo a implementar a Arquitetura Orientada a Serviços de forma eficiente.

Discutir

  • Participe da comunidade do My developerWorks. Entre em contato com outros usuários do developerWorks, enquanto explora blogs, fóruns, grupos e wikis orientados a desenvolvedores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing, Rational
ArticleID=830293
ArticleTitle=Gerenciamento do IBM SmartCloud Enterprise, Parte 2: Use e mantenha pacotes configuráveis de software com ICCT
publish-date=08162012