Utilice el CodeDeploy agente para validar un paquete de despliegue en una máquina local - AWS CodeDeploy

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

Con el CodeDeploy agente, puede implementar contenido en una instancia en la que haya iniciado sesión. Esto le permite probar la integridad de un 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

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 más información, consulte Sistemas operativos compatibles con el agente CodeDeploy .

  • Instale la versión 1.0.1.1352 o posterior del agente. CodeDeploy Para obtener más información, consulte Instale el CodeDeploy agente.

  • 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 más información, consulte Paso 1: Configurar.

  • 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 que cualquier EC2 instancia de Amazon con un perfil de IAM instancia adjunto que contenga la ARN arn:aws:iam::444455556666:role/CodeDeployDemo descargue desde cualquier lugar del bucket de Amazon S3 denominadoamzn-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 que cualquier instancia local con un IAM usuario asociado que contenga la ARN arn:aws:iam::444455556666:user/CodeDeployUser descargue desde cualquier lugar del bucket de Amazon S3 denominadoamzn-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.

  • 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 IAM instancia y adjúntelo a la instancia. Para obtener información, consulte Paso 4: Crea un perfil de IAM instancia para tus EC2 instancias de Amazon, Cree una instancia de Amazon EC2 para CodeDeploy (AWS CLI o una consola Amazon EC2) y Crear una instancia de Amazon EC2 para CodeDeploy (plantilla)AWS CloudFormation.

  • Si va a implementar el contenido desde GitHub, cree una GitHub cuenta y un repositorio público. Para crear una GitHub cuenta, consulta Unirse GitHub. Para crear un GitHub repositorio, consulta Crear un repositorio.

    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 más información, consulte Trabajar con revisiones de aplicaciones para CodeDeploy.

  • 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.ymlpara instancias de Amazon LinuxRHEL, Ubuntu Server o C:\ProgramData\Amazon\CodeDeploy\conf.yml Windows Server). Para obtener más información, consulte CodeDeploy referencia de configuración del agente.

    nota

    Si usa un archivo de configuración en instancias de Amazon Linux o Ubuntu Server, debe: RHEL

    • 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

    • sudoUtilícelo para ejecutar comandos de CodeDeploy agente.

Creación de una implementación local

En la instancia en la que desee crear la implementación local, abra una sesión de terminal (instancias de Amazon Linux o Ubuntu Server) o una línea de comandos (Windows Server) para ejecutar los comandos de la herramienta. RHEL

nota

El comando codedeploy-local se instala en las siguientes ubicaciones:

  • En Amazon Linux o Ubuntu Server:/opt/codedeploy-agent/bin. RHEL

  • 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 RHEL Amazon Linux 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 incluyen DISALLOWOVERWRITE,RETAIN. Para obtener más información, consulte fileExistsBehavioren AWS CodeDeploy APIReferencia.

-g, --deployment-group

La ruta a la carpeta que es la ubicación de destino del contenido que se va a implementar. Si no especifica una carpeta, la herramienta crea una con su nombre en default-local-deployment-groupel 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 ejemploApplicationStop.

Si no especificas DownloadBundleni instalas los eventos en la lista de anulaciones, se ejecutarán antes que todos los enlaces de eventos que especifiques. Si incluyes DownloadBundlee 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 más información, consulte AppSpec sección «ganchos».

-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 o Ubuntu Server) o C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). RHEL Para obtener más información, consulte CodeDeploy referencia de configuración del agente.

-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 archivoappspec.yml.

-h, --help

Muestra un resumen del contenido de ayuda.

-v, --version

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

Ejemplos

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