

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Instalación de un paquete en una instancia de Windows
<a name="cookbooks-101-opsworks-install-software-package"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en [AWS Re:post](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support).

**nota**  
Este ejemplo presupone que ya ha completado el ejemplo [Ejecución de una receta en una instancia de Windows](cookbooks-101-opsworks-opsworks-windows.md). De lo contrario, debería completarlo primero. En concreto, describe cómo habilitar el acceso RDP en las instancias.

Si el software está incluido en un paquete instalador, como un archivo MSI, debe descargar el archivo en la instancia y, a continuación, ejecutarlo. Este ejemplo muestra cómo implementar un libro de recetas para instalar un paquete MSI, el tiempo de ejecución de Python, incluido cómo definir las variables de entorno asociadas. Para obtener más información sobre cómo instalar características de Windows, como IIS, consulte [Instalación de una característica de Windows: IIS](cookbooks-101-opsworks-install-software-feature.md).

**Para configurar el libro de recetas**

1. Cree un directorio llamado `installpython` y ábralo.

1. Añada un archivo `metadata.rb` a `installpython` con el contenido siguiente.

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

1. Añada subdirectorios `recipes` y `files` a `installpython` y un directorio `default` a files.

1. Descargue un paquete de Python de [Versiones de Python para Windows](https://www.python.org/downloads/windows/) en el directorio `files\default` del libro de recetas. Este ejemplo instala la versión Windows x86- de 3.5.0a3, que utiliza un instalador llamado `python-3.4.3.amd64.msi`python-64.msi.

1. Añada un archivo llamado `default.rb` al directorio `recipes` con el siguiente código de receta.

   ```
   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
   ```

   La receta hace lo siguiente:

   1. Utiliza un recurso [directory](https://docs.chef.io/chef/resources.html#directory) para crear un directorio `C:\tmp`.

      Para obtener más información sobre este recurso, consulte [Ejemplo 3: Creación de directorios](cookbooks-101-basics-directories.md).

   1. Utiliza un recurso [cookbook\$1file](https://docs.chef.io/chef/resources.html#cookbook-file) para copiar el instalador del directorio `files\default` del libro de recetas en `C:\tmp`.

      Para obtener más información sobre este recurso, consulte [Instalación de un archivo a partir de un libro de recetas](cookbooks-101-basics-files.md#cookbooks-101-basics-files-cookbook_file).

   1. Utiliza un recurso [windows\$1package](https://docs.chef.io/chef/resources.html#windows-package) para ejecutar el instalador MSI que instala Python en `c:\python34`.

      El instalador crea los directorios necesarios e instala los archivos, pero no modifica la variable de entorno `PATH` del sistema.

   1. Utiliza un recurso [env](https://docs.chef.io/chef/resources.html#env) para añadir `c:\python34` a la ruta de acceso al sistema.

      Utilice los recursos de env para definir las variables de entorno. En este caso, la receta le permite ejecutar de manera sencilla scripts de Python desde la línea de comandos tan solo añadiendo `c:\python34` a la ruta.
      + El nombre del recurso especifica el nombre de la variable de entorno, `PATH` en este ejemplo.
      + El atributo `value` especifica el valor de la variable, `c:\\python34` en este ejemplo (necesita dejar sin efecto el carácter `\`).
      + La acción `:modify` antepone el valor especificado al valor actual de la variable.
      + El atributo `delim` especifica un delimitador que separa el valor nuevo del valor existente, `;` en este ejemplo.

1. Cree un archivo de almacenamiento `.zip` de `installpython`, cárguelo en un bucket de S3 y publíquelo. Anote la URL del archivo de almacenamiento; la necesitará más adelante. Para obtener más información, consulte [Repositorios de libros de recetas](workingcookbook-installingcustom-repo.md).

   El contenido entregado a los buckets de Amazon S3 puede contener contenido del cliente. Para obtener más información sobre la eliminación de información confidencial, consulte [¿Cómo puedo vaciar un bucket de S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) o [¿Cómo elimino un bucket de S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

Cree una pila para este ejemplo tal y como se indica a continuación. También puede utilizar una pila de Windows existente. Actualice los libros de recetas tal y como se describe más adelante.

**Creación de una pila**

1. Abra la [consola de OpsWorks](https://console.aws.amazon.com/opsworks/) y elija **Add Stack (Añadir pila)**. Especifique las siguientes opciones de configuración, acepte los valores predeterminados del resto y, a continuación, elija **Add Stack (Añadir pila)**.
   + **Nombre —** InstallPython
   + **Región**: Oeste de EE. UU. (Oregón)

     Este ejemplo funcionará en cualquier región, pero recomendamos utilizar la región Oeste de EE. UU. (Oregón) en los tutoriales.
   + **Sistema operativo predeterminado**: Microsoft Windows Server 2012 R2

1. Elija **Add a layer (Añadir una capa)** y [añada una capa personalizada](workinglayers-custom.md) a la pila con la siguiente configuración.
   + **Nombre**: Python
   + **Nombre abreviado**: python

1. [Añada una instancia de funcionamiento ininterrumpido](workinginstances-add.md) con la configuración predeterminada a la capa Python e [iníciela](workinginstances-starting.md).

Cuando la instancia esté online, podrá instalar el libro de recetas y ejecutar la receta.

**Para instalar el libro de recetas y ejecutar la receta**

1. [Edite la pila para habilitar los libros de recetas personalizados](workingcookbook-installingcustom-enable.md) y especifique las siguientes opciones de configuración.
   + **Tipo de repositorio**: **S3 Archive**
   + **URL de repositorio**: la dirección URL del archivo del libro de recetas que anotó previamente.

   Acepte los valores predeterminados del resto de opciones y elija **Save (Guardar)** para actualizar la configuración de la pila.

1. [Ejecute el comando de pila **Update Custom Cookbooks (Actualizar libros de recetas personalizados)**](workingstacks-commands.md), que instala la última versión de los libros de recetas personalizados en las instancias online de la pila. Si existiera una versión anterior del libro de recetas, este comando la sobrescribe.

1. Para ejecutar la receta, basta con ejecutar el comando de pila **Execute Recipes (Ejecutar recetas)** con **Recipes to execute (Recetas que ejecutar)** configurado en **installpython::default**. Este comando inicia una ejecución de Chef con una lista de ejecución que es `installpython::default`.
**nota**  
En este ejemplo, se usa **Execute Recipes** por comodidad, pero normalmente haces que OpsWorks Stacks [ejecute tus recetas automáticamente](workingcookbook-assigningcustom.md) asignándolas al evento del ciclo de vida correspondiente. Puede desencadenar el evento de forma manual para ejecutar estas recetas. Puede utilizar un comando de pila para desencadenar los eventos Setup y Configure y un [comando de implementación](workingapps-deploying.md) en el caso de los eventos Deploy y Undeploy.

1. Para verificar la instalación, [utilice RDP para conectarse a la instancia](workinginstances-rdp.md) y abra el Explorador de Windows. 
   + Ahora, debería aparecer un directorio `C:\Python34` en el sistema de archivos.
   + Si ejecuta `path` en la línea de comandos, debería parecerse a: `PATH=c:\python34;C:\Windows\system32;...`.
   + Si ejecuta `python --version` en la línea de comandos, debería devolver `Python 3.4.3`.