Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
¿Cómo puedo ejecutar el agente de CodeDeploy con un perfil de usuario que no sea el perfil raíz?
Quiero ejecutar el agente de AWS CodeDeploy con un perfil de usuario que no sea el perfil raíz.
Resolución
La siguiente resolución es compatible con todas las distribuciones de RPM y Linux basadas en Debian compatibles del agente de CodeDeploy. Para iniciar una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con una imagen de máquina de Amazon (AMI) de Amazon Linux, debes usar Amazon Linux 2023 (AL2023) o Amazon Linux 2 (AL2).
Requisito previo: Instala el agente de CodeDeploy en tu instancia de EC2 o comprueba que el agente de CodeDeploy se esté ejecutando en la instancia.
Cambio del usuario en el archivo de configuración del agente de CodeDeploy y concesión de los permisos necesarios al usuario
Sigue estos pasos:
-
Para detener el agente host de CodeDeploy que está instalado en la instancia, ejecuta el siguiente comando:
sudo service codedeploy-agent stop -
Para cambiar el usuario en el archivo de configuración del agente de CodeDeploy, ejecuta el siguiente comando del editor de secuencias sed:
sudo sed -i 's/""/"ec2-user"/g' /etc/init.d/codedeploy-agentNota: Sustituye ec2-user por el nombre de usuario en el que deseas que se ejecute el agente host de CodeDeploy. Para obtener más información sobre el comando sed, consulta la Introducción en el sitio web de GNU.
-
Para volver a cargar la configuración del sistema, ejecuta los siguientes comandos:
sudo sed -i 's/#User=codedeploy/User=ec2-user/g' /usr/lib/systemd/system/codedeploy-agent.service sudo systemctl daemon-reload -
Para conceder al nuevo usuario los permisos de acceso a los directorios necesarios, ejecuta los siguientes comandos:
sudo chown ec2-user:ec2-user -R /opt/codedeploy-agent/ sudo chown ec2-user:ec2-user -R /var/log/aws/Nota: Sustituye ec2-user por el nombre de usuario en el que deseas que se ejecute el agente host de CodeDeploy.
-
Para reiniciar el agente de CodeDeploy, ejecuta el siguiente comando:
sudo service codedeploy-agent start -
Para confirmar que el archivo de configuración está actualizado, ejecuta el siguiente comando:
sudo service codedeploy-agent statusResultado de ejemplo:
The AWS CodeDeploy agent is running as PID #### -
Para comprobar qué procesos se están ejecutando y quién es el usuario que los ejecuta, ejecuta el siguiente comando:
ps aux | grep codedeploy-agent
Crea una plantilla de configuración de inicio y un grupo de AWS Auto Scaling para automatizar el proceso de cambio de usuario
Sigue estos pasos:
-
Abre la consola de Amazon EC2.
-
En el panel de navegación, elige Configuraciones de inicio.
-
Elige Crear configuración de inicio.
-
Selecciona la AMI de Amazon Linux.
-
Elige Siguiente: configurar detalles.
-
En Rol de IAM, elige un rol de AWS Identity and Access Management (IAM) preconfigurado. El rol debe conceder permiso a tu instancia para acceder a los recursos de Amazon Simple Storage Service (Amazon S3).
-
Selecciona Detalles avanzados.
-
En la sección Datos de usuario del archivo de configuración del agente, introduce los comandos para instalar el agente de CodeDeploy. A continuación, actualiza el archivo para usar un usuario específico.
Para IMDSv1, utiliza el siguiente script:#!/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 systemctl daemon-reload chown ec2-user:ec2-user -R /opt/codedeploy-agent/ chown ec2-user:ec2-user -R /var/log/aws/ service codedeploy-agent startPara IMDSv2, utiliza el siguiente script:
#!/bin/bash TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` REGION=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" http://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 systemctl daemon-reload chown ec2-user:ec2-user -R /opt/codedeploy-agent/ chown ec2-user:ec2-user -R /var/log/aws/ service codedeploy-agent startNota: Sustituye ec2-user por el nombre de usuario en el que deseas que se ejecute el agente host de CodeDeploy. El código del ejemplo anterior se ejecuta automáticamente al iniciar una nueva instancia que usa la configuración de inicio definida.
-
Completa los pasos restantes del asistente de inicio. A continuación, selecciona Crear configuración de inicio.
-
Elige Crear un grupo de AWS Auto Scaling mediante esta configuración de inicio.
-
En Nombre del grupo, introduce un nombre para tu grupo de escalamiento automático.
-
En Subred, introduce una subred que permita a la instancia acceder a Internet.
-
Elige Siguiente: configurar políticas de escalamiento y, a continuación, elige una política.
-
Completa el resto de los pasos del asistente de inicio y, a continuación, elige Crear grupo de AWS Auto Scaling.
Verifica que el agente de CodeDeploy esté instalado y se esté ejecutando con el usuario correcto en una instancia nueva
En primer lugar, confirma que la instancia se esté ejecutando. A continuación, sigue estos pasos:
- Usa SSH para conectarte a tu instancia.
- Para comprobar que el agente de CodeDeploy se está ejecutando en la instancia, ejecuta el siguiente comando:
Si el comando devuelve un error, significa que no has instalado el agente de CodeDeploy. Instala el agente de CodeDeploy.sudo service codedeploy-agent status - Para comprobar que el agente de CodeDeploy se ejecuta con el nombre de usuario correcto, ejecuta el siguiente comando:
Resultado de ejemplo:ps aux | grep codedeploy-agentThe AWS CodeDeploy agent is running as PID ####
- Temas
- Developer Tools
- Etiquetas
- AWS CodeDeploy
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace un mes
- preguntada hace un año
- preguntada hace 8 meses
- preguntada hace 3 meses
OFICIAL DE AWSActualizada hace un año