

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.

# Utilice el CodeDeploy agente para validar un paquete de despliegue en una máquina local
<a name="deployments-local"></a>

Con el CodeDeploy agente, puede implementar contenido en una instancia en la que haya iniciado sesión. Esto le permite probar la integridad del archivo de especificaciones de la aplicación (AppSpec archivo) que pretende utilizar en una implementación y el contenido que pretende implementar. 

No necesita crear una aplicación ni un grupo de implementaciones. Si desea implementar contenido almacenado en la instancia local, ni siquiera necesita una AWS cuenta. Para realizar las pruebas más sencillas, puede ejecutar el **codedeploy-local** comando, sin especificar ninguna opción, en un directorio que contenga el AppSpec archivo y el contenido que se va a implementar. Existen opciones para otros escenarios de prueba en la herramienta. 

Mediante la validación de un paquete de implementación en una máquina local, puede:
+ Probar la integridad de una revisión de la aplicación
+ Pruebe el contenido de un AppSpec archivo.
+ Pruébelo CodeDeploy por primera vez con el código de su aplicación actual.
+ Implementar contenido rápidamente cuando ya ha iniciado sesión en una instancia.

Puede utilizar el contenido de despliegue almacenado en la instancia local o en un tipo de repositorio remoto compatible (depósitos de Amazon S3 o GitHub repositorios públicos).

## Requisitos previos
<a name="deployments-local-prerequisites"></a>

Antes de iniciar una implementación local, siga los pasos que se indican a continuación: 
+ Cree o utilice un tipo de instancia compatible con el CodeDeploy agente. Para obtener información, consulte [Sistemas operativos compatibles con el agente CodeDeploy](codedeploy-agent.md#codedeploy-agent-supported-operating-systems). 
+ Instale la versión 1.0.1.1352 o posterior del agente. CodeDeploy Para obtener información, consulte [Instale el agente CodeDeploy](codedeploy-agent-operations-install.md).
+ Si va a implementar su contenido desde un GitHub depósito o repositorio de Amazon S3, aprovisione un usuario para usarlo con él CodeDeploy. Para obtener información, consulte [Paso 1: Configurar](getting-started-setting-up.md).
+ Si va a implementar la revisión de la aplicación desde un bucket de Amazon S3, cree un bucket de Amazon S3 en la región en la que está trabajando y aplique una política de bucket de Amazon S3 al bucket. Esta política concede a las instancias los permisos necesarios para descargar la revisión de la aplicación.

  Por ejemplo, la siguiente política de bucket de Amazon S3 permite a cualquier instancia de Amazon EC2 asociada a un perfil de instancia de IAM que contenga el ARN `arn:aws:iam::444455556666:role/CodeDeployDemo` descargar desde cualquier lugar al bucket de Amazon S3 llamado `amzn-s3-demo-bucket`:

  ```
  {
      "Statement": [
          {
              "Action": [
                  "s3:Get*",
                  "s3:List*"
              ],
              "Effect": "Allow",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "Principal": {
                  "AWS": [
                      "arn:aws:iam::444455556666:role/CodeDeployDemo"
                  ]
              }
          }
      ]
  }
  ```

  La siguiente política de bucket de Amazon S3 permite a cualquier instancia en las instalaciones con un usuario de IAM asociado que contenga el ARN `arn:aws:iam::444455556666:user/CodeDeployUser` descargar desde cualquier lugar al bucket de Amazon S3 denominado `amzn-s3-demo-bucket`:

  ```
  {
      "Statement": [
          {
              "Action": [
                  "s3:Get*",
                  "s3:List*"
              ],
              "Effect": "Allow",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "Principal": {
                  "AWS": [
                      "arn:aws:iam::444455556666:user/CodeDeployUser"
                  ]
              }
          }
      ]
  }
  ```

  Para obtener información acerca de cómo generar y adjuntar una política de bucket de Amazon S3, consulte [Ejemplos de política de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).
+ Si va a implementar la revisión de la aplicación desde un GitHub depósito o repositorio de Amazon S3, configure un perfil de instancia de IAM y adjúntelo a la instancia. Para obtener información, consulte [Paso 4: Crear un perfil de instancia de IAM para las instancias de Amazon EC2](getting-started-create-iam-instance-profile.md), [Cree una instancia de Amazon EC2 para CodeDeploy (AWS CLI o una consola Amazon EC2)](instances-ec2-create.md) y [Crear una instancia de Amazon EC2 para CodeDeploy (plantilla)CloudFormation](instances-ec2-create-cloudformation-template.md).
+ Si va a implementar su contenido desde GitHub, cree una GitHub cuenta y un repositorio público. Para crear una GitHub cuenta, consulta [Unirse GitHub](https://github.com/join). Para crear un GitHub repositorio, consulta [Crear un repositorio](https://help.github.com/articles/create-a-repo/).
**nota**  
 Actualmente no se admiten repositorios privados. Si tu contenido está almacenado en un GitHub repositorio privado, puedes descargarlo en la instancia y usar la `--bundle-location` opción para especificar su ruta local.
+ Prepare el contenido (incluido un AppSpec archivo) que desee implementar en la instancia y colóquelo en la instancia local, en su bucket de Amazon S3 o en su GitHub repositorio. Para obtener información, consulte [Trabajar con revisiones de aplicaciones para CodeDeploy](application-revisions.md).
+ Si desea utilizar valores distintos de los predeterminados para otras opciones de configuración, cree el archivo de configuración y colóquelo en la instancia (`/etc/codedeploy-agent/conf/codedeployagent.yml` para instancias de Amazon Linux, RHEL o Ubuntu Server o `C:\ProgramData\Amazon\CodeDeploy\conf.yml` para instancias de Windows Server). Para obtener información, consulte [CodeDeploy referencia de configuración del agente](reference-agent-configuration.md).
**nota**  
Si utiliza un archivo de configuración en instancias de Amazon Linux, RHEL o Ubuntu Server, debe:  
Usar las variables `:root_dir:` y `:log_dir:` para especificar ubicaciones distintas de las predeterminadas para la carpeta raíz de la implementación y las carpetas del directorio de archivos log 
Se usa `sudo` para ejecutar comandos de CodeDeploy agente.

## Creación de una implementación local
<a name="deployments-local-deploy"></a>

En la instancia en la que desea crear la implementación local, abra una sesión del terminal (para instancias de Amazon Linux, RHEL o Ubuntu Server) o un símbolo del sistema (para Windows Server) para ejecutar los comandos de la herramienta.

**nota**  
 El comando **codedeploy-local** se instala en las siguientes ubicaciones:   
 Para Amazon Linux, RHEL y Ubuntu Server: `/opt/codedeploy-agent/bin`. 
 Para Windows Server: `C:\ProgramData\Amazon\CodeDeploy\bin`. 

** Sintaxis básica de los comandos **

```
codedeploy-local [options]
```

**Sinopsis**

```
codedeploy-local
[--bundle-location <value>]
[--type <value>]
[--file-exists-behavior <value>]
[--deployment-group <value>]
[--events <comma-separated values>]
[--agent-configuration-file <value>]
[--appspec-filename <value>]
```

**Opciones**

**-l**, **--bundle-location**

La ubicación del paquete de revisión de la aplicación. Si no especifica una ubicación, la herramienta utiliza el directorio en el que está trabajando actualmente de forma predeterminada. Si especifica un valor en `--bundle-location`, también debe especificar uno en `--type`.

Ejemplos de formato de ubicación del paquete:
+ Instancia local de Amazon Linux, RHEL o Ubuntu Server: `/path/to/local/bundle.tgz`
+ Instancia local de Windows Server: `C:/path/to/local/bundle`
+ Bucket de Amazon S3: `s3://amzn-s3-demo-bucket/bundle.tar`
+ GitHub repositorio: `https://github.com/account-name/repository-name/`

**-t**, **--type**

El formato del paquete de revisión de la aplicación. Los tipos admitidos son `tgz`, `tar`, `zip` y `directory`. Si no especifica un tipo, la herramienta usa `directory` de manera predeterminada. Si especifica un valor en `--type`, también debe especificar uno en `--bundle-location`.

**-b**, **-- file-exists-behavior**

Indica cómo se tratan los archivos que ya existen en la ubicación de destino de una implementación pero que no forman parte de una implementación anterior realizada correctamente. Las opciones son DISALLOW, OVERWRITE, RETAIN. Para obtener más información, consulte la *[Referencia [fileExistsBehavior](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html#CodeDeploy-CreateDeployment-request-fileExistsBehavior)de la AWS CodeDeploy API](https://docs.aws.amazon.com/codedeploy/latest/APIReference/)*.

**-g**, **--deployment-group**

La ruta a la carpeta que es la ubicación de destino del contenido que se va a implementar. Si no especificas una carpeta, la herramienta crea una con un nombre en *default-local-deployment-group*el directorio raíz de la implementación. Para cada implementación local que cree, la herramienta crea un subdirectorio dentro de esta carpeta con nombres como *d-98761234-local*.

**-e**, **--events**

Un conjunto de enlaces de eventos de anulación del ciclo de vida que desee ejecutar, en orden, en lugar de los eventos que enumeró en el AppSpec archivo. Se pueden especificar varios enlaces, separados por comas. Puede utilizar esta opción si:
+ Quieres ejecutar un conjunto diferente de eventos sin tener que actualizar el AppSpec archivo. 
+ Desea ejecutar un único enlace de eventos como una excepción a lo que hay en el AppSpec archivo, por ejemplo`ApplicationStop`.

Si no especificas **DownloadBundle**ni **instalas** los eventos en la lista de anulaciones, se ejecutarán antes que todos los enlaces de eventos que especifiques. Si incluyes **DownloadBundle**e **Install** en la lista de `--events` opciones, solo deben ir precedidas de eventos que normalmente se ejecutan antes que ellos en las CodeDeploy implementaciones. Para obtener información, consulte [AppSpec sección de «ganchos»](reference-appspec-file-structure-hooks.md).

**-c****, -- agent-configuration-file**

La ubicación de un archivo de configuración que se utiliza para la implementación, si está almacenado en una ubicación distinta de la predeterminada. Un archivo de configuración especifica alternativas a otros valores y comportamientos predeterminados de una implementación. 

De forma predeterminada, los archivos de configuración se almacenan en `/etc/codedeploy-agent/conf/codedeployagent.yml` (instancias de Amazon Linux, RHEL o Ubuntu Server) o en `C:/ProgramData/Amazon/CodeDeploy/conf.yml` (Windows Server). Para obtener más información, consulte [CodeDeploy referencia de configuración del agente](reference-agent-configuration.md).

**-A**, **--appspec-filename**

El nombre del AppSpec archivo. Para las implementaciones locales, los valores aceptados son `appspec.yml` y `appspec.yaml`. De forma predeterminada, se llama al AppSpec archivo`appspec.yml`.

**-h**, **--help**

Muestra un resumen del contenido de ayuda.

**-v**, **--version**

Muestra el número de versión de la herramienta.

## Ejemplos
<a name="deployments-local-examples"></a>

A continuación se proporcionan ejemplos de formatos de comandos válidos.

```
codedeploy-local
```

```
codedeploy-local --bundle-location /path/to/local/bundle/directory
```

```
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
```

```
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group
```

Implementar un paquete desde Amazon S3:

```
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
```

```
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group
```

Implemente un paquete desde un GitHub repositorio público:

```
codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
```

```
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
```

```
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
```

```
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip
```

Implementar un paquete especificando varios eventos del ciclo de vida:

```
codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck
```

Detenga una aplicación implementada anteriormente mediante el evento de ApplicationStop ciclo de vida:

```
codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop
```

Implementar con un ID de grupo de implementaciones específico:

```
codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
```

```
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
```