¿Cómo puedo ejecutar el agente CodeDeploy con un perfil de usuario que no sea el perfil raíz?

6 minutos de lectura
0

Quiero ejecutar el agente AWS CodeDeploy con un perfil de usuario que no sea el perfil raíz.

Descripción corta

Para ejecutar el agente CodeDeploy con un perfil de usuario que no sea el perfil raíz, haga lo siguiente:

1.    (Requisito previo) Compruebe que el agente CodeDeploy esté instalado en su instancia de Amazon Elastic Compute Cloud (Amazon EC2).

2.    Cambie el usuario en el archivo de configuración del agente de CodeDeploy y conceda al usuario los permisos necesarios.

3.    Cree una plantilla de configuración de lanzamiento de Amazon EC2 y un grupo de escalamiento automático para automatizar el proceso de cambio de usuario.

4.    Pruebe la configuración comprobando que el agente CodeDeploy esté instalado y en ejecución con el usuario correcto en su instancia de Amazon EC2.

Nota: Estos pasos se aplican a las instancias que utilizan una imagen de máquina de Amazon (AMI) de Amazon Linux 1 o Amazon Linux 2. Sin embargo, la AMI de Amazon Linux 1 se encuentra en estado de soporte de mantenimiento. En este estado, la AMI solo recibe actualizaciones de seguridad críticas e importantes para un conjunto reducido de paquetes. Además, ya no se garantiza que la AMI sea compatible con las nuevas capacidades de la plataforma EC2 ni con las nuevas funciones de AWS.

Resolución

Nota: Si recibe errores al ejecutar los comandos de Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

(Requisito previo) Compruebe que el agente CodeDeploy esté instalado en su instancia de Amazon EC2

Siga las instrucciones de la Guía del usuario de CodeDeploy de Verify the CodeDeploy agent is running (Comprobar que el agente de CodeDeploy se esté ejecutando).

Para obtener instrucciones sobre cómo instalar el agente CodeDeploy, consulte Install the CodeDeploy agent (Instalación del agente CodeDeploy).

Cambie el usuario en el archivo de configuración del agente de CodeDeploy y conceda al usuario los permisos necesarios

1.    Conéctese a su instancia de Amazon EC2 mediante SSH.

2.    Para detener el agente host de CodeDeploy que está instalado en la instancia, ejecute el siguiente comando:

sudo service codedeploy-agent stop

3.    Cambie el usuario en el archivo de configuración del agente de CodeDeploy ejecutando el siguiente comando sed stream editor:

Importante: Sustituya ec2-user por el nombre de usuario en el que desea que se ejecute el agente host de CodeDeploy.

sudo sed -i 's/""/"ec2-user"/g' /etc/init.d/codedeploy-agent

Importante: Para las AMI de Amazon Linux 2, también debe ejecutar los dos comandos siguientes:

sudo sed -i 's/#User=codedeploy/User=ec2-user/g' /usr/lib/systemd/system/codedeploy-agent.service
sudo systemctl daemon-reload

4.    Otorgue al nuevo usuario los permisos de acceso a los directorios necesarios mediante la ejecución de los dos comandos siguientes:

Importante: Sustituya ec2-user por el nombre de usuario en el que desea que se ejecute el agente host de CodeDeploy.

sudo chown ec2-user:ec2-user -R /opt/codedeploy-agent/
sudo chown ec2-user:ec2-user -R /var/log/aws/

5.    Reinicie el agente CodeDeploy y confirme que las actualizaciones del archivo de configuración se realizaron correctamente ejecutando los dos comandos siguientes:

sudo service codedeploy-agent start
sudo service codedeploy-agent status

Ejemplo exitoso de salida de comando

The AWS CodeDeploy agent is running as PID ####

6.    Compruebe qué procesos se están ejecutando y qué usuario los está ejecutando mediante el siguiente comando:

ps aux | grep codedeploy-agent

Cree una plantilla de configuración de lanzamiento de Amazon EC2 y un grupo de escalamiento automático para automatizar el proceso de cambio de usuario

Para confirmar que el agente CodeDeploy esté instalado y en ejecución con el usuario correcto cuando se lancen nuevas instancias, haga lo siguiente:

1.    Abra la consola de Amazon EC2.

2.    En el panel de navegación, elija Launch Configurations (Iniciar configuraciones).

3.    Elija Create launch configuration (Crear configuración de lanzamiento).

4.    Seleccione la AMI de Amazon Linux.

5.    Elija Next: Configure details (Siguiente: configurar detalles).

6.    En IAM role (Rol de IAM), elija un rol de AWS Identity and Access Management (IAM) preconfigurado. El rol debe conceder permiso a su instancia de EC2 para acceder a los recursos de Amazon Simple Storage Service (Amazon S3).

7.    Seleccione Advanced details (Detalles avanzados).

8.    En la sección User data (Datos de usuario) del archivo de configuración del agente, introduzca los comandos para instalar el agente CodeDeploy. A continuación, actualice el archivo para usar un usuario específico.

Ejemplo de archivo de configuración del agente

Importante: Sustituya ec2-user por el nombre de usuario en el que desea que se ejecute el agente host de CodeDeploy. El siguiente código de ejemplo se ejecuta automáticamente cuando se lanza una nueva instancia que utiliza la configuración de lanzamiento definida.

#!/bin/bash
REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/[a-z]$//')
yum -y update
yum install ruby wget -y
cd /home/ec2-user
wget https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
service codedeploy-agent stop
#adduser username <--- this is only required if you use a username that does not already exist
sed -i 's/""/"ec2-user"/g' /etc/init.d/codedeploy-agent
#sed -i 's/#User=codedeploy/User=ec2-user/g' /usr/lib/systemd/system/codedeploy-agent.service  <--- Uncomment this line for Amazon Linux 2
systemctl daemon-reload
chown ec2-user:ec2-user -R /opt/codedeploy-agent/
chown ec2-user:ec2-user -R /var/log/aws/
service codedeploy-agent start

9.    Complete los pasos restantes de AWS Launch Wizard según sea necesario. A continuación, seleccione Create launch configuration (Crear configuración de lanzamiento).

10.    Elija Create an Auto Scaling group using this launch configuration (Crear un grupo de Auto Scaling mediante esta configuración de lanzamiento).

11.    En Group name (Nombre del grupo), introduzca un nombre para su grupo de Auto Scaling.

12.    En Subnet (Subred), introduzca una subred que permita a la instancia acceder a Internet.

13.    Elija Next: Configure scaling policies (Siguiente: configurar las políticas de escalamiento). A continuación, elija una póliza en función de sus necesidades.

14.    Complete el resto de los pasos de Launch Wizard. A continuación, seleccione Create Auto Scaling Group (Crear grupo de escalamiento automático).

Pruebe la configuración comprobando que el agente CodeDeploy esté instalado y en ejecución con el usuario correcto en una nueva instancia de Amazon EC2.

Confirm that your Amazon EC2 instance is running (Confirmación de que la instancia de Amazon EC2 se esté ejecutando). A continuación, haga lo siguiente:

1.    Conéctese a su instancia de Amazon EC2 mediante SSH.

2.    Compruebe que el agente CodeDeploy se esté ejecutando en la instancia Amazon EC2 mediante el siguiente comando:

sudo service codedeploy-agent status

3.    Compruebe que el agente CodeDeploy se ejecuta con el nombre de usuario correcto mediante el siguiente comando:

ps aux | grep codedeploy-agent

Ejemplo exitoso de salida de comando

The AWS CodeDeploy agent is running as PID ####

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años