Customize Imagens do SmartCloud Enterprise baseadas em Windows

Automatizando configurações de software que exigem o sistema operacional Microsoft Windows

Você é cliente do produto IBM® SmartCloud Enterprise? Passou muito tempo customizando uma instância do Windows® com software e conteúdo? Gostaria de salvar seu progresso e compartilhar com colegas, parceiros e outros usuários da nuvem? Este artigo apresenta algumas dicas para automatizar software e configurações de entrada do usuário em uma imagem do IBM SmartCloud Enterprise baseada no Windows.

Lisa Seacat DeLuca, Advisory Software Engineer, IBM

Author  photoLisa Seacat DeLuca é Advisory Software Engineer na equipe Advanced Cloud Technologies em Global Technology Services, GTS, da IBM. Lisa tem mais de seis anos de experiência em desenvolvimento de software corporativo e liderou o esforço de suporte do OAuth para a oferta IBM SmartCloud. Ela possui mestrado em comercialização de tecnologia pela Universidade do Texas e bacharelado em Ciência da Computação pela Universidade Carnegie Mellon.



20/Jul/2012

A customização de uma imagem do IBM® SmartCloud Enterprise no Windows® é um pouco mais complicada que seu equivalente no Linux®. Apesar dessas complicações, a customização de uma imagem baseada em Windows não só é possível, como é necessária por muitas necessidades de negócios. Este artigo apresenta algumas dicas para automatizar software e configurações de entrada do usuário em uma imagem do IBM SmartCloud Enterprise baseada no Windows. Ele não trata de todas as questões, mas lida com alguns dos problemas comuns e suas possíveis soluções, para ajudar a evitar falhas na captura de imagens e problemas inexplicáveis de fornecimento de instância.

Este artigo é voltado para pessoas e empresas interessadas em customizar uma imagem baseada em Microsoft® Windows usando IBM SmartCloud Enterprise. Supõe-se que o leitor tenha um conhecimento básico do IBM SmartCloud Enterprise, como navegação do portal do administrador em nuvem. Além disso, recomenda-se experiência básica com o sistema operacional Windows.

Plano de fundo

A Tabela 1 mostra as diferenças entre a customização de uma imagem baseada em Linux e de uma baseada em Windows. Algumas dessas diferenças são discutidas mais detalhadamente ao longo do artigo.

Tablela 1. Diferenças entre customização de imagens no Linux e no Windows
Componente de customizaçãoSemelhanças e diferenças
parameters.xml type=fileA inclusão de mais um parâmetro type=file não é suportada em imagens baseadas no Windows.
extraindo valores de parameters.xmlO mesmo script Perl pode ser executado em ambos os tipos de imagens. No entanto, o Perl não vem pré-instalado em imagens no Windows.
scripts de ativaçãoMesma estrutura necessária. O usuário que está customizando a imagem pode ter os scripts FirstProvisionStartup.bat eVMInstanceStartup.bat. É importante observar que, se for necessária uma etapa de configuração, ela deve esperar até que o Windows tenha efetuado login do usuário (como um executável ou script da macro para automatizar um conjunto de etapas de configuração). Esses scripts provavelmente não são a solução que você procura. Se um dos scripts contiver uma chamada que espera, o fornecimento da instância provavelmente irá falhar. Este artigo descreve soluções alternativas.
iniciar .exe em um script de ativaçãoComo mencionado, a execução de processos de usuário através de scripts de ativação não é suportada no momento, pois pode levar a falhas de fornecimento. Quando este artigo foi escrito, a equipe de suporte procurava maneiras de incluir esse recurso.
etapa de capturaEmbora um usuário ainda possa usar o portal IBM SmartCloud para salvar uma imagem de uma instância existente, há algumas etapas adicionais necessárias para que a captura tenha sucesso.
Nota: essas diferenças eram válidas no momento da publicação e podem ter mudado desde então.

Há alguns artigos disponíveis que descrevem em detalhes como customizar imagens do IBM SmartCloud Enterprise, incluindo o abrangente Guia do Usuário disponível na guia Support do portal SmartCloud Enterprise (é necessário efetuar login para acessar). No entanto, apesar dos melhores esforços para lidar com problemas específicos do Windows, ainda são necessárias mais informações sobre por que uma imagem baseada em Windows tem desempenho diferente de uma imagem no Linux.

As três opções para fazer com que comandos sejam executados em uma imagem no Windows são:

  1. Scripts de ativação
  2. Entradas no registro do Windows
  3. Serviços do Windows

A opção escolhida depende totalmente do ambiente e dos requisitos do sistema. Este artigo descreve alguns dos problemas que os usuários podem ter ao usar cada opção. Observe que uma combinação das opções pode ser a melhor escolha para suas necessidades.

Antes de continuar, algumas palavras sobre imagens customizadas. Uma imagem customizada é criada ao salvar uma instância do SmartCloud e ao fazer alterações de configuração nela, por exemplo, usando um arquivo parameters.xml customizado ou scripts de ativação. Uma imagem é considerada baseada em Windows se o sistema operacional da instância na qual a imagem foi salva também estava usando Windows. Quer a imagem seja para uso privado, compartilhado ou público, este artigo descreve como configurar uma imagem baseada em Windows.


Extraindo valores de parameters.xml

Semelhante à solução Linux, com uma imagem baseada em Windows é possível extrair os valores que um usuário insere como respostas aos parâmetros adicionais que estão armazenados no arquivo parameters.xml em novas instâncias. Para uma imagem do Windows, esse arquivo se encontra no diretório c:/cloud. Para extrair rapidamente os valores, está disponível um script Perl que entende a estrutura e marcação do arquivo parameters.xml. No entanto, o Perl não vem pré-instalado em uma imagem baseada em Windows. Para usar o mesmo script Perl, é necessário primeiro fazer o download e a instalação de uma versão do Perl na instância antes de salvá-la como uma imagem. A seção Recursos contém um link para o website de download do Perl. O arquivo de script extracted-parameters-new.pl está disponível para download na seção Download.

Na maioria das situações, é necessário extrair os valores de parameters.xml apenas uma vez. Se esse for o caso para sua imagem customizada, coloque os comandos para extração dos valores no script de ativação, executado apenas uma vez. A Listagem 1 é um exemplo da extração de dois parâmetros chamados param1 e param2 respectivamente para um arquivo de texto chamado extracted.txt.

Lista 1. Comando para extrair valores de parameters.xml
@echo off
CD C:/dir/where/perl/script/is/stored
perl extract-parameters-new.pl -v param1 parameters.xml > extracted.txt
echo. >> extracted.txt
perl extract-parameters-new.pl -v param2 parameters.xml >> extracted.txt
start extracted.txt

Algumas dicas sobre arquivos em lote do Windows. A primeira é o uso do duplo. >>. Isso diz ao script para colocar o valor no final do arquivo, em vez de reescrever o conteúdo existente.

Em segundo lugar, echo. >> extracted.txt inclui uma nova linha no arquivo, o que facilita a leitura do arquivo de texto resultante. Para abrir o arquivo recém-criado, use start extracted.txt. A abertura do arquivo é opcional. Por motivos de segurança, recomenda-se excluir o arquivo resultante no qual os valores extraídos foram armazenados e o arquivo parameters.xml após concluir as etapas de configuração e instalação. Esses arquivos podem conter credenciais do usuário e senhas.


Scripts de ativação

Semelhante à imagem baseada em Linux, a imagem do Windows permite que seu criador defina um conjunto de scripts de ativação que são executados uma vez na criação da instância e sempre na sua inicialização. Em uma imagem baseada em Windows, esses arquivos de script são salvos no diretório c:\cloud:

  • FirstProvisionStartup.bat: Executa uma vez. Esse é um bom local para colocar os comandos para extrair parameters.xml.
  • VMInstanceStartup.bat: Executa a cada vez que a instância é iniciada.

Os arquivos de texto usados para criar esses scripts podem ter qualquer nome, desde que sejam mapeados corretamente no arquivo de definições de mapeamento scripts.txt. No entanto, os nomes dos arquivos de script (FirstProvisionStartup.bat e VMInstanceStartup.bat) são fixos e não podem ser alterados. É necessário haver um arquivo que descreva o mapeamento entre os arquivos de script e os arquivos de texto, e ele deve se chamar scripts.txt. Assim como nas imagens do Linux, as imagens do Windows exigem que esses arquivos de script sejam salvos no diretório activation_scripts no IBM Rational Asset Manager da imagem. A Listagem 2 mostra um exemplo do conteúdo do mapeamento de scripts.txt.

Lista 2. Mapeamento de comandos de scripts.txt
Run_always_on_VMreboot.txt=C:\cloud\VMInstanceStartup.bat
Run_only_once_on_VMreboot.txt=C:\cloud\FirstProvisionStartup.bat

Na Listagem 2, há três arquivos no diretório activation_scripts: Run_always_on_VMreboot.txt, Run_only_once_on_VMreboot.txt e scripts.txt.

Dica do Rational Asset Manager

Uma vantagem de usar o IBM Rational Asset Manager é que ele permite compactar a pasta activation_scripts e fazer upload do arquivo zip. O Rational Asset Manager extrairá o conteúdo para você. Isso torna mais rápido o upload de mais de uma alteração de arquivo.

Se for necessária uma etapa de configuração que exija que o usuário tenha feito login (para garantir que serviços específicos do Windows estejam sendo executados, como um executável ou um script da macro para automatizar um conjunto de etapas de configuração), o uso dos scripts VMInstanceStartup.bat e FirstProvisionStartup.bat provavelmente não será a solução ideal. Se um dos scripts contiver uma chamada que espera, o fornecimento da instância provavelmente irá falhar. Para verificar se uma falha de fornecimento de instância está relacionada aos scripts de ativação, tente uma destas opções e depois crie a instância novamente:

  • Exclua o diretório dos scripts de ativação no catálogo de ativos de imagem no IBM Rational Asset Manager (RAM).
  • Comente as linhas dos comandos nos scripts e atualize no Rational Asset Manager.
  • Limpe o conteúdo dos arquivos e atualize no Rational Asset Manager.

Para editar os scripts de ativação ou qualquer outro aspecto de uma imagem existente, siga estas instruções:

  1. Acesse a guia Control Panel no portal IBM SmartCloud Enterprise.
  2. Clique em View asset catalog na parte superior do Painel de Controle. O IBM Rational Asset Manager é aberto.
  3. A página de entrada aberta no Rational Asset Manager é geralmente a guia Assets, que lista todos os ativos disponíveis no IBM SmartCloud Enterprise. É possível procurar a imagem aqui.
  4. Se a imagem for privada ou tiver sido criada na sua conta, clique na guia My Dashboard. É exibida uma visualização mais fácil de gerenciar das imagens que você tem autoridade para modificar.
  5. Localize a imagem a ser customizada e clique no ícone de lápis na linha da imagem.
    Figura 1. Visualização My Dashboard do RAM
    Visualização My Dashboard do RAM
  6. Na parte inferior da página, há uma área que lista todos os arquivos associados com a imagem. Como já foi dito, a maneira mais eficiente de atualizar os scripts de ativação é compactar o conteúdo e fazer upload do arquivo zip. Para isso, clique em Browse e localize e selecione o arquivo zip na máquina local. Ou clique no link More options, o que atualiza a página e permite clicar no diretório activation_scripts. A partir daí, é possível excluir e substituir arquivos individualmente.
  7. Quando estiver satisfeito com as alterações, clique em Update.
  8. Faça um comentário sobre as alterações feitas (opcional) e clique em Update.

Entradas no registro do Windows

Como mencionado, se for necessário executar um executável ou conjunto de macros após a imagem customizada ser fornecida, o arquivo FirstProvisionStartup.bat não é necessariamente o melhor local para os comandos, pois ele pode fazer com que a etapa de fornecimento da instância falhe. Uma alternativa é usar entradas do registro do Windows.

Há quatro chaves do registro do Windows que podem ser usadas para fazer com que o sistema operacional execute um comando ou conjunto de comandos após um usuário fazer login:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

Observe que há duas opções de chave, Run e RunOnce. RunOnce, como diz o nome, é para os comandos que devem ser executados uma única vez. Por padrão, a entrada é excluída antes que o comando seja executado. Para fazer com que o comando seja excluído após ser executado, coloque um ponto de exclamação na frente do nome da chave. Por exemplo, !KeyName.

Como o foco deste artigo é criar imagens do Windows, use as entradas do registro LOCAL_MACHINE em vez de CURRENT_USER. As entradas de registro LOCAL_MACHINE garantem que qualquer usuário que faça login faça com que os comandos sejam executados. Isso não é diretamente ligado a um usuário específico; portanto, qualquer usuário que faça login na instância pode fazer com que os comandos sejam executados. O uso de CURRENT_USER requer permissões especiais para o usuário no qual a instância foi criada. Como a conta administrativa do Windows está sujeita a alterações com a criação de novas instâncias, é necessário certificar-se de que cada um desses usuários desconhecidos tenha permissão para executar os comandos. Portanto, use as entradas de registro LOCAL_MACHINE.

Este artigo não se propõe a ser um guia completo para scripts do Windows ou para a manipulação de entradas no registro do Windows. Esta seção foi incluída como uma sugestão de alternativa ao uso dos scripts de ativação do IBM SmartCloud Enterprise. Para mais detalhes sobre chaves do registro do Windows e criação de arquivos de lote, consulte a seção Recursos.

A Figura 2 mostra a janela do registro do Windows.

Figura 2. Janela do registro do Windows
Janela do registro do Windows

Para acessar a janela do registro do Windows, clique me Start > e digite regedit na caixa de execução. Após a janela do registro do Windows abrir, é possível navegar para a chave Run ou RunOnce apropriada e incluir valores de chave.

Para incluir um valor no registro do Windows, clique com o botão direito no espaço em branco na área de chave e selecione New > String value. Dê um nome ao novo valor da chave. Lembre-se de usar o ponto de exclamação caso queira usar o recurso descrito anteriormente. Uma nova chave é criada.

Para modificar o valor, clique com o botão direito na chave e selecione Modify.. Uma nova janela é aberta. Insira um comando, local, programa ou arquivo em lote para executar. A Figura 2 mostra um exemplo de uma nova chave que aponta para um arquivo em lote que conclui as etapas de automação e configuração da imagem customizada quando um novo usuário faz login na instância.

Outra maneira de fazer com que um comando de execução seja executado uma única vez é incluir uma entrada de registro de comando de exclusão após os outros comandos terem concluído. A Listagem 3 é um exemplo de como criar uma linha de comando em lote do Windows para excluir uma entrada de registro.

Lista 3. Comando de arquivo em lote para excluir uma entrada do registro do Windows
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 
	 /v REGKEYNAME /f

A Listagem 4 mostra um comando de arquivo em lote do Windows que consulta o registro do Windows para verificar se uma chave de registro existe.

Lista 4. Comando de arquivo em lote para consultar entradas do registro do Windows
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 
	 /v REGKEYNAME || start SOMECOFIGEXE.exe

Caso a chave exista, nada acontece. Caso não exista, o comando após a barra vertical dupla (||) é executado. A chave é usada como um semáforo. Essa é uma maneira de fazer com que macros customizadas ou um arquivo executável sejam executados uma única vez sem usar o arquivo FirstProvisionStartup.bat.

Após o arquivo executável ser executado, é possível executar um comando para incluir uma entrada de registro para que, na próxima vez em que a instância for iniciada, o arquivo .exe não seja executado porque o comando de consulta localiza a entrada do registro. Para incluir uma entrada de registro, use o comando REG ADD mostrado na Listagem 5.

Lista 5. Comando de arquivo em lote para incluir uma entrada no registro do Windows
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 
	 /v REGKEYNAME /f

Com todos esses exemplos de comando em lote, pode ser necessário atualizar a localização da chave de entrada do registro (por exemplo, LOCAL_MACHINE vs. CURRENT_USER) para que corresponda ao local em que a entrada do registro foi salva.


Serviços do Windows

Quando o software é instalado em uma imagem baseada no Windows, pode haver um serviço do Windows associado a ele. Verifique cuidadosamente se o usuário associado a esses serviços é genérico e não o usuário específico usado para criar a instância do Windows. Caso contrário, quando uma instância for salva como imagem e uma nova instância for criada, a menos que a conta do Windows seja a mesma, os usuários poderão observar comportamentos estranhos do software instalado, porque a conta do usuário do Windows não possui as permissões corretas para iniciar e parar o software.

Figura 3. Serviços do Windows
Serviços do Windows

Para modificar um serviço do Windows para que qualquer usuário possa iniciá-lo e pará-lo:

  1. Clique em Start.
  2. Clique em Administrative Tools.
  3. Selecione Services.. A janela de serviços do Windows é aberta, como mostra a Figura 3.
  4. Localize o serviço que está incorretamente associado a uma conta específica de usuário do Windows. Se não souber o nome do serviço, role pela lista observando a coluna Log On As. Caso o valor seja diferente de Local System ou Network Service, ele está provavelmente associado a uma conta de usuário específica.
  5. Clique duas vezes no nome do serviço.
  6. Uma nova janela é aberta. Clique na guia Log On (Figura 4).
    Figura 4. Janela Log On de serviços do Windows
    Janela Log On de serviços do Windows
  7. O botão de opções This account está selecionado. Clique no botão Local System account..
  8. Clique em OK.

Agora, quando a instância for salva como imagem e fornecida como uma ou mais instâncias, os serviços do Windows não dependerão de uma conta de usuário específica.


Criando uma imagem privada do Windows

Em relação a sua captura, as imagens do Windows são um pouco mais complicadas que as do Linux. Embora a etapa final de selecionar uma instância no portal IBM SmartCloud Enterprise e clicar em create private image seja a mesma, se isso for feito antes de um conjunto de etapas adicionais, a captura irá falhar. Esta seção oferece uma visão geral e análise das etapas de configuração necessárias. A seção Recursos contém um link para um documento que descreve essas etapas de configuração em detalhes.

Nota: Há etapas adicionais necessárias antes de capturar uma imagem baseada no Windows. Caso não sejam seguidas corretamente, a criação da imagem do Windows falha. O Guia do Usuário contém as etapas mais atuais.

Para configurar o Windows:

  1. Efetue login na instância usando o Protocolo de Desktop Remoto.
  2. Reinicialize a instância manualmente.
  3. Efetue login novamente. Desative janelas pop-up que evitam que o Windows inicie corretamente. Por exemplo, avisos de firewall, atualizações do Windows etc. Para verificar se todas as pop-ups foram desativadas, reinicie a instância.
  4. Sincronize a hora do sistema:
    1. Clique com o botão direito na barra de tarefas do Windows.
    2. Selecione Properties.
    3. Selecione a guia Notification Area.
    4. Marque javax.realtime.
    5. Clique em OK.
    6. Clique com o botão direito no horário exibido agora na barra de tarefas do Windows.
    7. Clique em Adjust Date/Time.
    8. Selecione a guia Internet Time.
    9. Clique em Change Settings.
    10. Clique em Update now.. O tempo será sincronizado. Se não funcionar na primeira vez, tente novamente.

    Se essas etapas não funcionarem para sua imagem baseada no Windows, procure as etapas corretas online para sincronizar a data e hora.

  5. Ative o Windows:
    1. Clique em Start.
    2. Clique com o botão direito no ícone Command Prompt.
    3. Clique em Run as administrator.
    4. Digite slmgr -ato. . Pressione Enter..
    5. Clique em OK na janela da mensagem.
  6. Clique duas vezes no ícone do desktop para executar AUTOLOG.bat.
  7. Encerre a instância manualmente: Start > Log off > Shut down.
  8. A instância será encerrada e será possível criar uma imagem privada usando o portal IBM SmartCloud Enterprise.

A seção Recursos contém um link para capturar um documento de imagem do Windows.


Conclusão

Este artigo descreveu muitas das diferenças entre uma imagem baseada em Linux e uma imagem baseada em Windows no ambiente do IBM SmartCloud Enterprise. Além disso, ofereceu algumas soluções alternativas para problemas conhecidos com imagens do Windows, que servem para facilitar a customização e captura de uma imagem do IBM SmartCloud Enterprise baseada no Windows.


Download

DescriçãoNomeTamanho
Perl script to extract parameters.xml valuesextracted-parameters-new.pl3KB

Recursos

Aprender

Obter produtos e tecnologias

  • Faça o download do Perl para executar scripts Perl, como o script Perl de extração de parameters.xml, em imagens baseadas no Windows.
  • Consulte as imagens do produto disponíveis para IBM SmartCloud Enterprise.

Discutir

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
ArticleID=826076
ArticleTitle=Customize Imagens do SmartCloud Enterprise baseadas em Windows
publish-date=07202012