Uso del comando “register” (ARN de usuario de IAM) para registrar una instancia en las instalaciones
importante
No se recomienda registrar una instancia con un usuario de IAM porque utiliza credenciales estáticas (permanentes) para la autenticación. Para mejorar la seguridad, recomendamos registrar una instancia con credenciales temporales para la autenticación. Para obtener más información, consulte Uso del comando “register-on-premises-instance” (ARN de sesión de IAM) para registrar una instancia en las instalaciones.
importante
Asegúrese de tener un plan para rotar las claves de acceso del usuario de IAM (credenciales permanentes). Para obtener más información, consulte Rotación de las claves de acceso.
Esta sección describe cómo configurar una instancia en las instalaciones y cómo registrarla y etiquetarla en CodeDeploy con el mínimo esfuerzo. El comando register resulta especialmente útil cuando se trabaja con una sola flota o con flotas pequeñas de instancias en las instalaciones. Solo puede utilizar el comando register si emplea un ARN de usuario de IAM para autenticar una instancia. No puede utilizar el comando register con un ARN de sesión de IAM para la autenticación.
Cuando utiliza el comando register, puede permitir que CodeDeploy haga lo siguiente:
-
Crear un usuario de IAM en AWS Identity and Access Management para la instancia en las instalaciones, si no especifica uno en particular con el comando.
-
Guardar las credenciales del usuario de IAM en un archivo de configuración de la instancia en las instalaciones.
-
Registrar una instancia en las instalaciones con CodeDeploy.
-
Añadir etiquetas a la instancia en las instalaciones, si las especifica como parte del comando.
nota
El comando register-on-premises-instance es una alternativa al comando register. Utilice el comando register-on-premises-instance si desea configurar una instancia en las instalaciones y registrarla y etiquetarla con CodeDeploy por su cuenta. El comando register-on-premises-instance también le da la opción de utilizar un ARN de sesión de IAM para registrar instancias en lugar de un ARN de usuario de IAM. Este enfoque proporciona una gran ventaja si tiene grandes flotas de instancias en las instalaciones. Específicamente, puede utilizar un solo ARN de sesión de IAM para autenticar múltiples instancias en lugar de tener que crear un usuario de IAM para cada instancia en las instalaciones a la vez. Para obtener más información, consulte Uso del comando “register-on-premises-instance” (ARN de un usuario de IAM) para registrar una instancia en las instalaciones y Uso del comando “register-on-premises-instance” (ARN de sesión de IAM) para registrar una instancia en las instalaciones.
Temas
Paso 1: Instalar y configurar la AWS CLI en la instancia en las instalaciones
-
Instale la AWS CLI en la instancia on-premises. Siga las instrucciones en Configuración inicial de la AWS CLI en la Guía del usuario de la AWS Command Line Interface.
nota
Los comandos de CodeDeploy para trabajar con instancias en las instalaciones están disponibles a partir de la versión 1.7.19 de la AWS CLI. Si ya tiene instalada la AWS CLI, llame a aws --version para comprobar su versión.
-
Configure la AWS CLI en la instancia on-premises. Siga las instrucciones de Configuración de la AWS CLI en la Guía del usuario de la AWS Command Line Interface.
importante
Al configurar la AWS CLI (por ejemplo, llamando al comando aws configure), asegúrese de especificar el ID de la clave secreta y la clave de acceso secreta de un usuario de IAM que tenga, como mínimo, los siguientes permisos de acceso de AWS, además de los permisos especificados en Requisitos previos para configurar una instancia en las instalaciones. Esto le permite descargar e instalar el agente de CodeDeploy en la instancia en las instalaciones. Los permisos de acceso podrían tener un aspecto similar a este:
nota
Si ve errores de acceso denegado al intentar acceder a uno de los buckets de Amazon S3 mostrados anteriormente, intente omitir la parte de
/*del ARN de recursos del bucket, por ejemploarn:aws:s3:::aws-codedeploy-sa-east-1.
Paso 2: Llamar al comando “register”
Para este paso se da por sentado que va a registrar la instancia on-premises desde la propia instancia on-premises. También puede registrar una instancia on-premises desde un dispositivo o instancia diferente que tenga la AWS CLI instalada y configurada, como se describe en el paso anterior.
Utilice la AWS CLI para llamar al comando register especificando:
-
Un nombre que identifica de manera única la instancia en las instalaciones en CodeDeploy (con la opción
--instance-name).importante
Para ayudarle a identificar la instancia on-premises en otro momento, especialmente a efectos de depuración, recomendamos encarecidamente que utilice un nombre que se asigne a algunas características exclusivas de la instancia on-premises (por ejemplo, el número de serie o algún identificador único de recurso interno, si procede). Si especifica una dirección MAC para un nombre, debe tener en cuenta que las direcciones MAC contienen caracteres que CodeDeploy no permite, como los dos puntos (
:). Para obtener una lista de los caracteres permitidos, consulte Cuotas de CodeDeploy. -
Si lo desea, el ARN de un usuario de IAM existente que desea asociar a esta instancia en las instalaciones (con la opción
--iam-user-arn). Para obtener el ARN de un usuario de IAM, llame al comando get-user o elija el nombre de usuario de IAM en la sección Users de la consola de IAM y, a continuación, busque el valor User ARN en la sección Summary. Si no se especifica esta opción, CodeDeploy creará un usuario de IAM en su nombre en la cuenta de AWS y lo asociará a la instancia en las instalaciones.importante
Si especifica la opción
--iam-user-arn, además debe crear manualmente el archivo de configuración de la instancia en las instalaciones, como se describe en Paso 4: Añadir un archivo de configuración a la instancia en las instalaciones.Puede asociar un solo usuario de IAM a una sola instancia en las instalaciones. Intentar asociar un solo usuario de IAM a múltiples instancias en las instalaciones puede producir errores, implementaciones fallidas en dichas instancias en las instalaciones o implementaciones en dichas instancias en las instalaciones que permanecen en estado pendiente perpetuo.
-
Si lo desea, un conjunto de etiquetas de instancias en las instalaciones (con la opción
--tags) que CodeDeploy utilizará para identificar el conjunto de instancias de Amazon EC2 en el que se realizará la implementación. Especifique cada etiqueta conKey=(por ejemplo,tag-key,Value=tag-valueKey=Name,Value=Beta Key=Name,Value=WestRegion). Si no se especifica esta opción, no se registrarán etiquetas. Para registrar etiquetas en otro momento, llame al comando add-tags-to-on-premises-instances. -
Opcionalmente, la región de AWS en la que se registrará la instancia en las instalaciones en CodeDeploy (con la opción
--region). Debe ser una de las regiones admitidas que se encuentran en la lista de Regiones y puntos de enlace de la Referencia general de AWS (por ejemplo,us-west-2). Si no se especifica esta opción, se utilizará la región predeterminada de AWS asociada al usuario de IAM que realiza la llamada.
Por ejemplo:
aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2
El comando register hace lo siguiente:
-
Si no se especifica un usuario de IAM existente, lo crea, le asocia los permisos necesarios y genera la clave secreta y la clave de acceso secreta correspondientes. La instancia en las instalaciones utilizará este usuario de IAM, así como sus permisos y credenciales, para la autenticación e interacción con CodeDeploy.
-
Registra una instancia en las instalaciones con CodeDeploy.
-
Si se especifica, asocia en CodeDeploy las etiquetas que se especifican en la opción
--tagscon el nombre de la instancia en las instalaciones registrada. -
Si ya se ha creado el usuario de IAM, también crea el archivo de configuración necesario en el mismo directorio desde el que se ejecutó el comando register.
Si este comando encuentra algún error, aparece un mensaje en el que se describe cómo realizar manualmente los pasos faltantes. En caso contrario, aparece un mensaje de confirmación en el que se describe cómo ejecutar el comando install según se indica en el siguiente paso.
Paso 3: Llamar al comando “install”
Utilice la AWS CLI en la instancia en las instalaciones para ejecutar el comando install, especificando:
-
La ruta al archivo de configuración (con la opción
--config-file). -
Si lo desea, si se reemplazará el archivo de configuración que ya existe en la instancia on-premises (con la opción
--override-config). Si no se especifica, no se sustituirá el archivo de configuración existente. -
Opcionalmente, la región de AWS en la que se registrará la instancia en las instalaciones en CodeDeploy (con la opción
--region). Debe ser una de las regiones admitidas que se encuentran en la lista de Regiones y puntos de enlace de la Referencia general de AWS (por ejemplo,us-west-2). Si no se especifica esta opción, se utilizará la región predeterminada de AWS asociada al usuario de IAM que realiza la llamada. -
Si lo desea, una ubicación personalizada desde la que se instalará el agente de CodeDeploy (con la opción
--agent-installer). Esta opción es útil para instalar una versión personalizada del agente de CodeDeploy con el que CodeDeploy no es oficialmente compatible (como la versión personalizada basada en el repositorio del agente de CodeDeployen GitHub). El valor debe ser la ruta a un bucket de Amazon S3 que contenga cualquiera de los siguientes: -
Un script de instalación del agente de CodeDeploy (para sistemas operativos basados en Linux o en Unix, similar al archivo de instalación del repositorio del agente de CodeDeploy
en GitHub). -
Un archivo del paquete de instalación (.msi) del agente de CodeDeploy (para sistemas operativos basados en Windows).
Si no se especifica esta opción, CodeDeploy intentará instalar desde su propia ubicación una versión oficialmente compatible del agente de CodeDeploy válida para el sistema operativo de la instancia en las instalaciones.
-
Por ejemplo:
aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi
El comando install hace lo siguiente:
-
Comprueba si la instancia en las instalaciones es una instancia de Amazon EC2. Si lo es, aparece un mensaje de error.
-
Copia el archivo de configuración de las instancias en las instalaciones desde la ubicación especificada en la instancia a la ubicación donde el agente de CodeDeploy espera encontrarlo, siempre que el archivo ya no esté en esa ubicación.
Para Ubuntu Server y Red Hat Enterprise Linux (RHEL), es
/etc/codedeploy-agent/conf/codedeploy.onpremises.yml.Para Windows Server, es
C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.Si se especificó la opción
--override-config, crea o sobrescribe el archivo. -
Instala el agente de CodeDeploy en la instancia en las instalaciones y, a continuación, lo inicia.
Paso 4: Implementar revisiones de la aplicación en la instancia en las instalaciones
Ahora está listo para implementar revisiones de aplicaciones en la instancia on-premises registrada y etiquetada.
La implementación de revisiones de aplicaciones en instancias en las instalaciones es similar a la implementación de revisiones de aplicaciones en instancias de Amazon EC2. Para obtener instrucciones, consulte Creación de una implementación con CodeDeploy. Estas instrucciones incluyen un enlace a los requisitos previos, incluida la creación de una aplicación, la creación de un grupo de implementaciones y la preparación de la revisión de una aplicación. Si necesita una revisión de una aplicación sencilla para implementar, puede crear la que se describe en Paso 2: Crear una revisión de aplicación de ejemplo en el Tutorial: Implementación de una aplicación en una instancia en las instalaciones con CodeDeploy (Windows Server, Ubuntu Server o Red Hat Enterprise Linux).
importante
Si reutiliza un rol de servicio de CodeDeploy existente como parte de la creación de un grupo de implementación que tiene como destino instancias en las instalaciones, debe incluir Tag:get* en la parte Action de la instrucción de política del rol de servicio. Para obtener más información, consulte Paso 2: Crear un rol de servicio para CodeDeploy.
Paso 5: Hacer un seguimiento de las implementaciones en la instancia en las instalaciones
Después de implementar una revisión de una aplicación en instancias en las instalaciones registradas y etiquetadas, puede hacer un seguimiento del progreso de la implementación.
El seguimiento de las implementaciones en instancias en las instalaciones es similar al seguimiento de las implementaciones en instancias de Amazon EC2. Para obtener instrucciones, consulte Visualización de los detalles de la implementación de CodeDeploy .
Para obtener más opciones, consulte Cómo administrar operaciones de instancias en las instalaciones en CodeDeploy.