

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á.

# Instalar um pacote em uma instância do Windows
<a name="cookbooks-101-opsworks-install-software-package"></a>

**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](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

**nota**  
Este exemplo supõe que você já tenha concluído o exemplo em [Executar uma receita na instância Windows](cookbooks-101-opsworks-opsworks-windows.md). Caso contrário, conclua esse exemplo primeiro. Especificamente, ele descreve como habilitar o acesso RDP para suas instâncias.

Caso seu software venha com um pacote de instalação, como um MSI, baixe o arquivo para a instância e execute-o. Este exemplo mostra como implementar um livro de receitas para instalar um pacote MSI, o runtime do Python, incluindo como definir variáveis de ambiente. Para obter mais informações sobre como instalar recursos do Windows, como o IIS, consulte [Instalar um recurso do Windows: IIS](cookbooks-101-opsworks-install-software-feature.md).

**Para configurar o livro de receitas**

1. Crie um diretório chamado `installpython` e navegue até ele.

1. Adicione um arquivo `metadata.rb` a `installpython`, com o seguinte conteúdo.

   ```
   name "installpython"
   version "0.1.0"
   ```

1. Adicione os diretórios `recipes` e `files` a `installpython` e um diretório `default` aos arquivos.

1. Baixe um pacote Python de [Python Releases for Windows](https://www.python.org/downloads/windows/) para o diretório `files\default` do livro de receitas. Este exemplo instala a versão Windows x86- do 3.5.0a3, que usa um instalador chamado `python-3.4.3.amd64.msi`python-64.msi.

1. Adicione um arquivo chamado `default.rb` ao diretório `recipes` com o seguinte código de receita.

   ```
   directory 'C:\tmp' do
     rights :full_control, 'Everyone'
     recursive true
     action :create
   end
   
   cookbook_file 'C:\tmp\python-3.4.3.amd64.msi' do
     source "python-3.4.3.amd64.msi"
     rights :full_control, 'Everyone'
     action :create
   end
   
   windows_package 'python' do
     source 'C:\tmp\python-3.4.3.amd64.msi'
     action :install
   end
   
   env "PATH" do
     value 'c:\python34'
     delim ";"
     action :modify
   end
   ```

   A receita faz o seguinte:

   1. Usa um recurso de [diretório](https://docs.chef.io/chef/resources.html#directory) para criar um diretório `C:\tmp`.

      Para obter mais informações sobre esse recurso, consulte [Exemplo 3: Criação de diretórios](cookbooks-101-basics-directories.md).

   1. Usa um recurso [cookbook\$1file](https://docs.chef.io/chef/resources.html#cookbook-file) para copiar os arquivos do instalador do diretório `files\default` do livro de receitas para `C:\tmp`.

      Para obter mais informações sobre esse recurso, consulte [Instalação de um arquivo usando um livro de receitas](cookbooks-101-basics-files.md#cookbooks-101-basics-files-cookbook_file).

   1. Usa um recurso [windows\$1package](https://docs.chef.io/chef/resources.html#windows-package) para executar o instalador MSI, que instala o Python em `c:\python34`.

      O instalador cria os diretórios necessários e instala os arquivos, mas não modifica a variável de ambiente `PATH` do sistema.

   1. Usa um recurso [env](https://docs.chef.io/chef/resources.html#env) para adicionar `c:\python34` ao caminho do sistema.

      Use o recurso env para definir variáveis de ambiente. Nesse caso, a receita permite que você execute facilmente os scripts de Python a partir da linha de comando adicionando `c:\python34` ao caminho.
      + O nome do recurso especifica o nome da variável de ambiente. Neste exemplo, é `PATH`.
      + O atributo `value` especifica o valor da variável. Neste exemplo, `c:\\python34` (você precisa recuar o caractere `\`).
      + A ação `:modify` acrescenta o valor especificado ao valor atual da variável.
      + O atributo `delim` especifica um delimitador que separa o novo valor do valor existente, que é `;` neste exemplo.

1. Crie um arquivo `.zip` de `installpython`, carregue-o em um bucket do S3 e torne-o público. Registre o URL do arquivo para uso posterior. Para obter mais informações, consulte [Repositórios de livro de receitas](workingcookbook-installingcustom-repo.md).

   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?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) ou [Como faço para excluir um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

Crie uma pilha para este exemplo da seguinte maneira. Use também uma pilha existente do Windows. Basta atualizar os livros de receitas, como será descrito mais tarde.

**Criar uma pilha**

1. Abra o [console do OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) e selecione **Add Stack (Adicionar pilha)**. Especifique as seguintes configurações, aceite os padrões para as outras configurações e escolha **Add Stack**.
   + **Nome** — InstallPython
   + **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

1. Clique em **Add a layer** e [adicione uma camada personalizada à pilha](workinglayers-custom.md) com as seguintes configurações.
   + **Nome**: Python
   + **Nome curto**: python

1. [Adicione uma instância ininterrupta](workinginstances-add.md) com as configurações padrão à camada do Python e [inicie-a](workinginstances-starting.md).

Depois que a instância estiver online, instale o livro de receitas e execute a receita

**Para instalar o livro de receitas e executar a receita**

1. [Edite a pilha para habilitar livros de receitas personalizados](workingcookbook-installingcustom-enable.md), 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.

1. [Execute o comando de pilha **Update Custom Cookbooks**](workingstacks-commands.md), que instala a versão mais recente dos seus livros de receitas personalizado nas instâncias online da pilha. Se houver uma versão mais antiga de seu livro de receitas, este comando a substituirá.

1. Execute a receita acionando o comando de stack **Execute Recipes (Executar receitas)** com a opção **Recipes to execute (Receitas para executar)** definida como **installpython::default**. Este comando inicia uma execução do Chef, com uma lista de execução que consiste em `installpython::default`.
**nota**  
Este exemplo usa **Execute Recipes** por conveniência, mas normalmente você faz com que OpsWorks as pilhas [executem suas receitas automaticamente](workingcookbook-assigningcustom.md), 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](workingapps-deploying.md) para acionar eventos Deploy e Undeploy.

1. Para verificar a instalação, [use RDP para conectar à instância](workinginstances-rdp.md) e abrir o Windows Explorer. 
   + O sistema de arquivos agora tem um diretório `C:\Python34`.
   + Se você executar `path` a partir da linha de comando, ele deve ser semelhante a: `PATH=c:\python34;C:\Windows\system32;...`
   + Se você executar `python --version` a partir da linha de comando, ele deve retornar `Python 3.4.3`.