Executando um PowerShell script do Windows - AWS OpsWorks

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executando um PowerShell script do Windows

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

nota

Estes exemplos supõem que você já concluiu o exemplo em Executar uma receita na instância Windows. Caso contrário, conclua esse exemplo primeiro. Especificamente, ele descreve como habilitar o acesso RDP para suas instâncias.

Uma maneira de fazer com que uma receita execute tarefas em uma instância do Windows, especialmente tarefas que não têm um recurso correspondente do Chef, é fazer com que a receita execute um script do Windows. PowerShell Esta seção apresenta o básico, descrevendo como usar um PowerShell script do Windows para instalar um recurso do Windows.

O powershell_scriptrecurso executa PowerShell cmdlets do Windows em uma instância. O exemplo a seguir usa um WindowsFeature cmdlet Install- para instalar um visualizador XPS na instância.

As instruções a seguir resumem o procedimento da criação de uma pilha neste exemplo. Para ter mais informações, consulte Criar uma nova pilha.

Criar uma pilha
  1. Abra o console do AWS OpsWorks Stacks e selecione Add Stack (Adicionar pilha). Especifique as seguintes configurações, aceite os padrões para as outras configurações e clique em Add Stack.

    • Nome — PowerShellTest

    • Região: Oeste dos EUA (Oregon)

      Este exemplo funcionará em qualquer região, mas recomendamos o uso de Oeste dos EUA (Oregon) para tutoriais.

    • Sistema operacional padrão: Microsoft Windows Server 2012 R2

  2. Clique em Add a layer e adicione uma camada personalizada à pilha com as seguintes configurações.

    • Nome — PowerShell

    • Nome curto: powershell

  3. Adicione uma instância 24 horas por dia, 7 dias por semana, com configurações padrão na PowerShell camada e inicie-a.

  4. Escolha Permissions e selecione Edit, SSH/RDP e sudo/admin. Você precisa dessa autorização além do grupo de segurança AWS-OpsWorks-RDP-Server para fazer login na instância como um usuário frequente.

Enquanto a instância está iniciando, o que geralmente demora vários minutos, você pode criar o livro de receitas. A receita deste exemplo cria um diretório de dados e é basicamente a receita de Exemplo 3: Criação de diretórios, modificada para o Windows.

Para configurar o livro de receitas
  1. Crie um diretório chamado powershell e navegue até ele.

  2. Crie um arquivo metadata.rb com o seguinte conteúdo e salve-o em windowstest.

    name "powershell" version "0.1.0"
  3. Criar um diretório recipes em powershell.

  4. Crie um arquivo default.rb com a seguinte receita e salve-o no diretório recipes.

    Chef::Log.info("******Installing XPS.******") powershell_script "Install XPS Viewer" do code <<-EOH Install-WindowsFeature XPS-Viewer EOH guard_interpreter :powershell_script not_if "(Get-WindowsFeature -Name XPS-Viewer).installed" end
    • O recurso powershell_script executa um cmdlet para instalar o visualizador XPS.

      Este exemplo executa apenas um cmdlet, mas o bloco code pode conter várias linhas de comando.

    • O guard_interpreter atributo direciona o Chef a usar a versão de 64 bits do Windows PowerShell.

    • O atributo de proteção not_if garante que o Chef não instale o recurso caso ele já tenha sido instalado.

  5. Crie um arquivo .zip do diretório powershell.

  6. Faça upload do arquivo em um bucket do Amazon S3, torne o arquivo público e registre o URL do arquivo. Você também pode usar um arquivo privado, mas um arquivo público é suficiente para este exemplo, além de ser mais fácil de trabalhar com ele.

    O conteúdo entregue aos buckets do Amazon S3 pode conter conteúdo do cliente. Para obter mais informações sobre a remoção de dados confidenciais, consulte Como faço para esvaziar um bucket do S3? ou Como faço para excluir um bucket do S3?.

Agora você pode instalar o livro de receitas e executar a receita.

Para executar a receita
  1. Edite a pilha para habilitar livros de receitas personalizados e especifique as seguintes configurações.

    • Tipo de repositório: Arquivamento do S3

    • URL do repositório: o URL do arquivo do livro de receitas que você registrou anteriormente

    Aceite os valores padrão para as outras configurações e escolha Save para atualizar a configuração da pilha.

  2. Execute o comando de pilha Update Custom Cookbooks para instalar a versão atual de seus livros de receitas personalizados nas instâncias da pilha.

  3. Após a execução de Update Custom Cookbooks (Atualizar livros de receitas personalizados), execute a receita executando o comando de stack Execute Recipes (Executar receitas) com a opção Recipes to execute (Receitas apra executar) definida como powershell::default.

nota

Este exemplo usa Execute Recipes por conveniência, mas normalmente você faz com que AWS OpsWorks as pilhas executem suas receitas automaticamente, atribuindo-as ao evento de ciclo de vida apropriado. Você pode executar essas receitas acionando manualmente o evento. Use um comando de stack para acionar eventos Setup e Configure, e um comando de pilha para acionar eventos Deploy e Undeploy.

Após a receita ser executada com sucesso, verifique isso.

Para verificar a receita do powershell
  1. Examine o log do Chef. Clique em show na coluna Log da instância powershell1 para exibir o log. Role para baixo e veja sua mensagem de log próxima à parte inferior.

    ... [2015-04-27T18:12:09+00:00] INFO: Storing updated cookbooks/powershell/metadata.rb in the cache. [2015-04-27T18:12:09+00:00] INFO: ******Installing XPS.****** [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Install XPS Viewer] action run (powershell::default line 3) [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Guard resource] action run (dynamically defined) [2015-04-27T18:12:42+00:00] INFO: powershell_script[Install XPS Viewer] ran successfully ...
  2. Use RDP para acessar a instância e abra o menu Start. O visualizador XPS deve estar listado com Windows Accessories.