

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.

# Tutorial: Implemente una aplicación en una instancia local con CodeDeploy (Windows Server, Ubuntu Server o Red Hat Enterprise Linux)
<a name="tutorials-on-premises-instance"></a>

Este tutorial lo ayuda a adquirir experiencia CodeDeploy al guiarlo a través de la implementación de una revisión de aplicación de muestra en una única instancia local (es decir, un dispositivo físico que no es una instancia de Amazon EC2) que ejecute Windows Server, Ubuntu Server o Red Hat Enterprise Linux (RHEL). Para obtener información sobre las instancias locales y cómo funcionan con ellas, consulte. CodeDeploy [Trabajar con instancias locales para CodeDeploy](instances-on-premises.md)

¿No es lo que está buscando?
+ Para practicar la implementación en una instancia de Amazon EC2 con Amazon Linux o RHEL, consulte [Tutorial: Implementación WordPress en una instancia de Amazon EC2 (Amazon Linux o Red Hat Enterprise Linux y Linux, macOS o Unix)](tutorials-wordpress.md).
+ Para practicar la implementación en una instancia de Amazon EC2 con Windows Server, consulte [Tutorial: Implementación de una aplicación "Hello, World\$1" aplicación con CodeDeploy (Windows Server)](tutorials-windows.md).

**Topics**
+ [Requisitos previos](tutorials-on-premises-instance-prerequisites.md)
+ [Paso 1: Configurar la instancia en las instalaciones](tutorials-on-premises-instance-1-configure-instance.md)
+ [Paso 2: Crear una revisión de aplicación de ejemplo](tutorials-on-premises-instance-2-create-sample-revision.md)
+ [Paso 3: Empaquetado y carga de la revisión de aplicación en Amazon S3](tutorials-on-premises-instance-3-bundle-sample-revision.md)
+ [Paso 4: Implementar la revisión de la aplicación](tutorials-on-premises-instance-4-deploy-sample-revision.md)
+ [Paso 5: Comprobar la implementación](tutorials-on-premises-instance-5-verify-deployment.md)
+ [Paso 6: Limpiar los recursos](tutorials-on-premises-instance-6-clean-up-resources.md)

# Requisitos previos
<a name="tutorials-on-premises-instance-prerequisites"></a>

Antes de comenzar este tutorial, debe cumplir los requisitos previos[Empezar con CodeDeploy](getting-started-codedeploy.md), que incluyen configurar un usuario, instalar o actualizar el AWS CLI rol de servicio y crear un rol de servicio. No es necesario crear un perfil de instancia de IAM como se describe en los requisitos previos. Las instancias en las instalaciones no utilizan perfiles de instancia de IAM.

El dispositivo físico que configurará como instancia on-premises debe emplear uno de los sistemas operativos indicados en [Sistemas operativos compatibles con el agente CodeDeploy](codedeploy-agent.md#codedeploy-agent-supported-operating-systems).

# Paso 1: Configurar la instancia en las instalaciones
<a name="tutorials-on-premises-instance-1-configure-instance"></a>

Antes de implementar en la instancia en las instalaciones, debe configurarla. Siga las instrucciones de [Trabajar con instancias locales para CodeDeploy](instances-on-premises.md) y, a continuación, vuelva a esta página.

## Instale el agente CodeDeploy
<a name="tutorials-on-premises-instance-1-configure-instance-agent"></a>

Tras configurar la instancia local, siga los pasos para las instancias locales que se indican en [Instalar el CodeDeploy agente](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html) y vuelva a esta página.

# Paso 2: Crear una revisión de aplicación de ejemplo
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

En este paso, creará una revisión de aplicación de ejemplo para implementarla en la instancia en las instalaciones. 

Dado que es difícil conocer el software y las características que ya están instalados -o que las políticas de su organización permiten instalar- en la instancia en las instalaciones, la revisión de aplicación de ejemplo que incluimos aquí usa simplemente scripts por lotes (en Windows Server) o scripts de intérpretes de comandos (en Ubuntu Server y RHEL) para escribir archivos de texto en una ubicación de la instancia en las instalaciones. Se escribe un archivo para cada uno de los diversos eventos del ciclo de vida de la CodeDeploy implementación, incluidos los eventos de **instalación**, **AfterInstall**ApplicationStart****, y. **ValidateService** Durante el evento del ciclo de vida de la **BeforeInstall**implementación, se ejecutará un script para eliminar los archivos antiguos escritos durante las implementaciones anteriores de este ejemplo y crear una ubicación en la instancia local en la que escribir los nuevos archivos. 

**nota**  
La implementación de la revisión de aplicación de ejemplo puede fallar si se da cualquiera de las siguientes circunstancias:  
El usuario que inicia el CodeDeploy agente en la instancia local no tiene permiso para ejecutar scripts.
El usuario no tiene permiso para crear o eliminar carpetas en las ubicaciones indicadas en los scripts.
El usuario no tiene permiso para crear archivos de texto en las ubicaciones indicadas en los scripts.

**nota**  
Si ha configurado una instancia de Windows Server y desea implementar un ejemplo diferente, puede ser conveniente usar el indicado en [Paso 2: Configurar el contenido de origen para implementarlo en la instancia de Amazon EC2 de Windows Server](tutorials-windows-configure-content.md) en el tutorial [Tutorial: Implementación de una aplicación "Hello, World\$1" aplicación con CodeDeploy (Windows Server)](tutorials-windows.md).  
Si ha configurado una instancia de RHEL y desea implementar un ejemplo diferente, puede ser conveniente usar el indicado en [Paso 2: Configurar el contenido fuente para implementarlo en la instancia de Amazon EC2 de Amazon Linux o Red Hat Enterprise Linux](tutorials-wordpress-configure-content.md) en el tutorial [Tutorial: Implementación WordPress en una instancia de Amazon EC2 (Amazon Linux o Red Hat Enterprise Linux y Linux, macOS o Unix)](tutorials-wordpress.md).  
En la actualidad, no hay ningún ejemplo alternativo para Ubuntu Server.

1. En el equipo de desarrollo, cree un subdirectorio (subcarpeta) con el nombre `CodeDeployDemo-OnPrem` para almacenar los archivos de la revisión de aplicación de ejemplo y, a continuación, sitúese en esa subcarpeta. En este ejemplo, supondremos que va a utilizar la carpeta `c:\temp` como la carpeta raíz para Windows Server o la carpeta `/tmp` como la carpeta raíz para Ubuntu Server y RHEL. Si utiliza una carpeta diferente, asegúrese de indicarla en lugar de la anterior en todo el tutorial: 

   Para Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Para Linux, macOS o Unix:

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. En la raíz de la subcarpeta `CodeDeployDemo-OnPrem`, utilice en editor de texto para crear dos archivos con los nombres `appspec.yml` e `install.txt`:

   `appspec.yml` para Windows Server:

   ```
   version: 0.0
   os: windows
   files:
     - source: .\install.txt
       destination: c:\temp\CodeDeployExample
   hooks:
     BeforeInstall:
       - location: .\scripts\before-install.bat
         timeout: 900
     AfterInstall:
       - location: .\scripts\after-install.bat     
         timeout: 900
     ApplicationStart:
       - location: .\scripts\application-start.bat  
         timeout: 900
     ValidateService:
       - location: .\scripts\validate-service.bat    
         timeout: 900
   ```

   `appspec.yml` para Ubuntu Server y RHEL:

   ```
   version: 0.0
   os: linux
   files:
     - source: ./install.txt
       destination: /tmp/CodeDeployExample
   hooks:
     BeforeInstall:
       - location: ./scripts/before-install.sh
         timeout: 900
     AfterInstall:
       - location: ./scripts/after-install.sh
         timeout: 900
     ApplicationStart:
       - location: ./scripts/application-start.sh
         timeout: 900
     ValidateService:
       - location: ./scripts/validate-service.sh
         timeout: 900
   ```

   Para obtener más información sobre AppSpec los archivos, consulte [Añadir un archivo de especificaciones de la aplicación a una revisión de CodeDeploy](application-revisions-appspec-file.md) y[CodeDeploy AppSpec referencia de archivo](reference-appspec-file.md).

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. En la raíz de la subcarpeta `CodeDeployDemo-OnPrem`, cree una subcarpeta `scripts` y sitúese en ella:

   Para Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Para Linux, macOS o Unix:

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. En la raíz de la subcarpeta `scripts`, utilice un editor de texto para crear cuatro archivos con los nombres `before-install.bat`, `after-install.bat`, `application-start.bat` y `validate-service.bat` para Windows Server, o `before-install.sh`, `after-install.sh`, `application-start.sh` y `validate-service.sh` para Ubuntu Server y RHEL:

   Para Windows Server:

   `before-install.bat`:

   ```
   set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample
   
   if exist %FOLDER% (
     rd /s /q "%FOLDER%"
   )
   
   mkdir %FOLDER%
   ```

   `after-install.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt
   ```

   `application-start.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt
   ```

   `validate-service.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt
   ```

   Para Ubuntu Server y RHEL:

   `before-install.sh`:

   ```
   #!/bin/bash
   export FOLDER=/tmp/CodeDeployExample
   
   if [ -d $FOLDER ]
   then
    rm -rf $FOLDER
   fi
   
   mkdir -p $FOLDER
   ```

   `after-install.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt
   ```

   `application-start.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt
   ```

   `validate-service.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt
   
   unset FOLDER
   ```

1. Solo para Ubuntu Server y RHEL, asegúrese de que los cuatro scripts de intérpretes de comandos tengan permisos de ejecución:

   ```
   chmod +x ./scripts/*
   ```

# Paso 3: Empaquetado y carga de la revisión de aplicación en Amazon S3
<a name="tutorials-on-premises-instance-3-bundle-sample-revision"></a>

Para poder implementar la revisión de la aplicación, antes tiene que agrupar sus archivos y cargar el paquete en un bucket de Amazon S3. Siga las instrucciones en [Cree una aplicación con CodeDeploy](applications-create.md) y [Enviar una revisión CodeDeploy a Amazon S3 (solo para implementaciones de EC2/on-premise)](application-revisions-push.md). (Aunque puede dar cualquier nombre a la aplicación y al grupo de implementaciones, le recomendamos especificar `CodeDeploy-OnPrem-App` como nombre para la aplicación y `CodeDeploy-OnPrem-DG` como nombre del grupo de implementaciones). Una vez que haya completado las instrucciones, vuelve a esta página. 

**nota**  
Como alternativa, puede cargar el paquete de archivos en un GitHub repositorio e implementarlo desde allí. Para obtener más información, consulte [Integración CodeDeploy con GitHub](integrations-partners-github.md).

# Paso 4: Implementar la revisión de la aplicación
<a name="tutorials-on-premises-instance-4-deploy-sample-revision"></a>

Una vez cargada la revisión de la aplicación en un bucket de Amazon S3, intente implementarla en la instancia en las instalaciones. Siga las instrucciones de [Cree una implementación con CodeDeploy](deployments-create.md) y, a continuación, vuelva a esta página.

# Paso 5: Comprobar la implementación
<a name="tutorials-on-premises-instance-5-verify-deployment"></a>

Para comprobar si la implementación se ha realizado correctamente, siga las instrucciones de [Ver detalles CodeDeploy de la implementación](deployments-view-details.md) y, a continuación, vuelva a esta página.

Si la implementación se ha realizado correctamente, verá cuatro archivos de texto en la carpeta `c:\temp\CodeDeployExample` (para Windows Server) o `/tmp/CodeDeployExample` (para Ubuntu Server y RHEL). 

Si la implementación ha fallado, siga los pasos de resolución de problemas de [Visualización de los detalles de la instancia con CodeDeploy](instances-view-details.md) y [Solución de problemas de instancias](troubleshooting-ec2-instances.md). Haga las correcciones necesarias, vuelva a empaquetar y cargar la revisión de la aplicación e intente implementarla de nuevo.

# Paso 6: Limpiar los recursos
<a name="tutorials-on-premises-instance-6-clean-up-resources"></a>

Para evitar cargos recurrentes por los recursos que ha creado para este tutorial, elimine el bucket de Amazon S3 si no va a utilizarlo. También puede limpiar los recursos asociados, como los registros del grupo de aplicaciones y despliegues CodeDeploy y la instancia local.

Puede utilizar las consolas Amazon S3 AWS CLI o una combinación de ellas AWS CLI para limpiar los recursos. CodeDeploy 

## Limpieza de los recursos (CLI)
<a name="tutorials-on-premises-instance-6-clean-up-resources-cli"></a>

**Para eliminar el bucket de Amazon S3**
+ Ejecute el comando [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) con el modificador `--recursive` para el bucket (por ejemplo, `amzn-s3-demo-bucket`). El bucket y todos los objetos que contiene se eliminarán. 

  ```
  aws s3 rm s3://your-bucket-name --recursive --region region
  ```

**Para eliminar los registros del grupo de aplicaciones y despliegues en CodeDeploy**
+ Llame al comando [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) para la aplicación (por ejemplo, `CodeDeploy-OnPrem-App`). Los registros de la implementación y del grupo de implementaciones se eliminarán. 

  ```
  aws deploy delete-application --application-name your-application-name
  ```<a name="tutorials-on-premises-instance-6-clean-up-resources-deregister-cli"></a>

**Para cancelar el registro de la instancia on-premises y eliminar el usuario de IAM**
+ Ejecute el comando [deregister](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) para la instancia en las instalaciones y la región:

  ```
  aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
  ```
**nota**  
Si no desea eliminar el usuario de IAM asociado a esta instancia en las instalaciones, especifique la opción `--no-delete-iam-user`.

**Para desinstalar el CodeDeploy agente y eliminar el archivo de configuración de la instancia local**
+ Desde la instancia en las instalaciones, llame al comando [uninstall](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html):

  ```
  aws deploy uninstall
  ```

Ha completado todos los pasos para limpiar los recursos utilizados en este tutorial.

## Limpieza de los recursos (consola)
<a name="tutorials-on-premises-instance-6-clean-up-resources-console"></a>

**Para eliminar el bucket de Amazon S3**

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Elija el icono junto al bucket que desea eliminar (por ejemplo, `amzn-s3-demo-bucket`), pero no elija el bucket en sí.

1. Elija **Acciones** y, a continuación, elija **Eliminar**. 

1. Cuando se le pida confirmación de que desea eliminar el bucket, elija **OK**. 

**Para eliminar los registros del grupo de aplicaciones y despliegues en CodeDeploy**

1. Inicie sesión en Consola de administración de AWS y abra la CodeDeploy consola en [https://console.aws.amazon.com/codedeploy.](https://console.aws.amazon.com/codedeploy)
**nota**  
Inicie sesión con el mismo usuario que configuró en [Empezar con CodeDeploy](getting-started-codedeploy.md).

1. En el panel de navegación, elija **Applications (Aplicaciones)**.

1. Elija el nombre de la aplicación que desea eliminar (por ejemplo, `CodeDeploy-OnPrem-App`) y, a continuación, elija **Delete application (Eliminar aplicación)**.

1. Cuando se le solicite, introduzca el nombre de la aplicación para confirmar que desea eliminarla y seleccione **Delete (Eliminar)**. 

No puede usar la AWS CodeDeploy consola para anular el registro de la instancia local o desinstalar el agente. CodeDeploy Siga las instrucciones en [Para cancelar el registro de la instancia on-premises y eliminar el usuario de IAM](#tutorials-on-premises-instance-6-clean-up-resources-deregister-cli).