David vous guide tout au long
de l'exécution de l'agent CodeDeploy
avec des profils non racine.

codedeploy-agent-non-root-profile-david

Comment exécuter l'agent AWS CodeDeploy avec un profil non racine ?

Avant de commencer, assurez-vous que l'agent CodeDeploy est installé sur votre instance Amazon Elastic Compute Cloud (Amazon EC2).

La résolution ci-dessous s'applique aux instances qui utilisent l'AMI Amazon Linux ou Amazon Linux 2.

Modifiez l'utilisateur et définissez les autorisations pour l'utilisateur sur lequel l'agent s'exécute.

1.    Connectez-vous à votre instance Linux à l'aide de SSH.

2.    Pour arrêter l'agent hôte CodeDeploy, exécutez la commande suivante :

sudo service codedeploy-agent stop

3.    Pour modifier le fichier de configuration de l'agent CodeDeploy, exécutez la commande sed stream editor :

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

Remarque : veillez à bien remplacer « ec2-user » par le nom d'utilisateur sur lequel vous souhaitez que l'agent hôte CodeDeploy s'exécute.

4.    Pour accorder à l'utilisateur des autorisations pour les répertoires nécessaires, exécutez les commandes suivantes :

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

5.    Pour redémarrer l'agent CodeDeploy et confirmer que vos mises à jour du fichier de configuration sont réussies, exécutez les commandes suivantes :

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

Si vos mises à jour sont réussies, vous obtenez une sortie similaire à ce qui suit :

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

6.    Pour voir quels processus sont en cours d'exécution et quel utilisateur exécute ces processus, exécutez la commande suivante :

ps aux | grep codedeploy-agent

Automatisez le processus de modification de l'utilisateur.

Pour vérifier que l'agent CodeDeploy est installé et en cours d'exécution avec l'utilisateur approprié lorsque de nouvelles instances sont lancées (par exemple, lors d'événements de scaling), vous pouvez automatiser le processus de modification de l'utilisateur :

1.    Ouvrez la console Amazon EC2.

2.    Dans le volet de navigation, sélectionnez Configurations de lancement.

3.    Sélectionnez Créer une configuration de lancement.

4.    Sélectionnez l'AMI Amazon Linux.

5.    Sélectionnez Suivant : Configurer les détails.

6.    Pour le rôle IAM, choisissez un rôle IAM qui accorde à l'instance Amazon EC2 les autorisations d'accès aux ressources d'Amazon Simple Storage Service (Amazon S3).

Remarque : pour plus d'informations, consultez Comment configurer un rôle de service AWS CodeDeploy et un profil d'instance ?.

7.    Sélectionnez Détails avancés.

8.    Dans la section Données utilisateur du fichier de configuration de l'agent, saisissez les commandes permettant d'installer l'agent CodeDeploy et mettez à jour le fichier pour utiliser un utilisateur spécifique. Consultez l'exemple suivant :

#!/bin/bash
yum -y update
yum install -y ruby aws-cli -y
cd /home/ec2-user
aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
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
chown ec2-user:ec2-user -R /opt/codedeploy-agent/
chown ec2-user:ec2-user -R /var/log/aws/
service codedeploy-agent start

Remarque : veillez à bien remplacer « ec2-user » par le nom d'utilisateur sur lequel vous souhaitez que l'agent hôte CodeDeploy s'exécute. Le code ci-dessus s'exécute automatiquement lorsqu'une nouvelle instance qui utilise cette configuration de lancement est lancée.

9.    Suivez les étapes restantes dans l'assistant de lancement si nécessaire, puis sélectionnez Créer une configuration de lancement.

10.    Sélectionnez Créer un groupe Auto Scaling à l'aide de cette configuration de lancement.

11.    Complétez les étapes suivantes :
Dans Nom du groupe, saisissez un nom pour votre groupe Auto Scaling.
Dans Sous-réseau, saisissez un sous-réseau qui autorise votre instance à accéder à Internet.

12.    Sélectionnez Suivant : Configurer les stratégies de dimensionnement, puis choisissez une stratégie en fonction de vos besoins.

13.    Complétez les autres étapes de l'assistant de lancement, puis sélectionnez Créer un groupe Auto Scaling.

Confirmez que l'agent CodeDeploy est en cours d'exécution sur l'instance que vous avez créée pour automatiser le processus de modification de l'utilisateur.

Assurez-vous que votre instance est en cours d'exécution, puis effectuez les opérations suivantes :

1.    Connectez-vous à votre instance Linux à l'aide de SSH.

2.    Exécutez la commande suivante :

sudo service codedeploy-agent status

3.    Pour vous assurer que le nom d'utilisateur approprié est utilisé, exécutez la commande suivante :

ps aux | grep codedeploy-agent

Si l'agent CodeDeploy est en cours d'exécution, vous obtenez une sortie similaire à ce qui suit :

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

Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 10/01/2017

Date de mise à jour : 26/02/2019