Share Your AWS re:Post Experience - Quick 3 Question Survey and Earn a re:Post Badge
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey
Come posso eseguire l'agente CodeDeploy con un profilo utente diverso dal profilo root?
Desidero eseguire l'agente AWS CodeDeploy con un profilo utente diverso dal profilo root.
Risoluzione
Amazon Linux 2 e Amazon Linux 2023 hanno sostituito l'Amazon Machine Image (AMI) Amazon Linux 1. Non puoi più avviare le AMI Amazon Linux 1 come istanza Amazon Elastic Compute Cloud (Amazon EC2). La seguente risoluzione è compatibile con tutte le distribuzioni Linux RPM e basate su Debian supportate dell'agente CodeDeploy.
Prerequisito: installa l'agente CodeDeploy sull'istanza EC2 o verifica che l'agente CodeDeploy sia in esecuzione sull'istanza.
Cambia l'utente nel file di configurazione dell'agente CodeDeploy e concedi all'utente le autorizzazioni richieste
Completa i seguenti passaggi:
-
Per arrestare l'agente host CodeDeploy installato sull'istanza, esegui il seguente comando:
sudo service codedeploy-agent stop
-
Per cambiare l'utente nel file di configurazione dell'agente CodeDeploy, esegui il seguente comando sed dell’editor di flusso:
sudo sed -i 's/""/"ec2-user"/g' /etc/init.d/codedeploy-agent
Nota: sostituisci ec2-user con il nome utente su cui desideri eseguire l'agente host CodeDeploy. Per ulteriori informazioni sul comando sed, consulta Introduction (Introduzione) sul sito web di GNU.
-
Per ricaricare la configurazione di systemd, esegui i seguenti comandi:
sudo sed -i 's/#User=codedeploy/User=ec2-user/g' /usr/lib/systemd/system/codedeploy-agent.service sudo systemctl daemon-reload
-
Per concedere al nuovo utente le autorizzazioni per le directory richieste, esegui i seguenti comandi:
sudo chown ec2-user:ec2-user -R /opt/codedeploy-agent/ sudo chown ec2-user:ec2-user -R /var/log/aws/
Nota: sostituisci ec2-user con il nome utente su cui desideri eseguire l'agente host CodeDeploy.
-
Per riavviare l'agente CodeDeploy, esegui il seguente comando:
sudo service codedeploy-agent start
-
Per verificare se il file di configurazione è aggiornato, esegui il seguente comando:
sudo service codedeploy-agent status
Esempio di output:
The AWS CodeDeploy agent is running as PID ####
-
Per verificare quali processi sono in esecuzione e l'utente che esegue i processi, esegui il seguente comando:
ps aux | grep codedeploy-agent
Crea un modello di configurazione di avvio e un gruppo AWS Auto Scaling per automatizzare il processo di modifica degli utenti
Completa i seguenti passaggi:
-
Apri la console Amazon EC2.
-
Nel pannello di navigazione, scegli Configurazioni di avvio.
-
Seleziona Crea configurazione di avvio.
-
Seleziona l'AMI Amazon Linux.
-
Scegli Avanti: Configura i dettagli.
-
Per Ruolo IAM, scegli un ruolo AWS Identity and Access Management (AWS IAM) preconfigurato. Il ruolo deve concedere all'istanza S3 l'autorizzazione ad accedere alle risorse di Amazon Simple Storage Service (Amazon S3).
-
Scegli Dettagli avanzati.
-
Nella sezione Dati utente del file di configurazione dell'agente, inserisci i comandi per installare l'agente CodeDeploy. Quindi aggiorna il file per utilizzare un utente specifico.
Per IMDSv1, utilizza il seguente 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 start
Per IMDSv2, utilizza il seguente 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 start
Nota: sostituisci ec2-user con il nome utente su cui desideri eseguire l'agente host CodeDeploy. L'esempio di codice precedente viene eseguito automaticamente quando si avvia una nuova istanza che utilizza la configurazione di avvio definita.
-
Completa i passaggi rimanenti della procedura guidata di avvio. Quindi scegli Crea configurazione di avvio.
-
Scegli Create an AWS Auto Scaling group using this launch configuration (Crea un gruppo AWS Autoscaling utilizzando questa configurazione di avvio).
-
In Nome gruppo, inserisci un nome per il tuo gruppo Auto Scaling.
-
In Sottorete, inserisci una sottorete che consenta alla tua istanza di accedere a Internet.
-
Scegli Avanti: Configura le policy di dimensionamento, quindi scegli una policy.
-
Completa il resto dei passaggi della procedura guidata di avvio, quindi scegli Create AWS Auto Scaling group (Crea gruppo AWS Auto Scaling).
Verifica che l'agente CodeDeploy sia installato e sia in esecuzione con l'utente corretto su una nuova istanza
Innanzitutto, verifica che l'istanza sia in esecuzione. Quindi completa i seguenti passaggi:
- Utilizza SSH per connetterti all'istanza.
- Per verificare che l'agente CodeDeploy sia in esecuzione sull'istanza, esegui il seguente comando:
Se il comando restituisce un errore, significa che l'agente CodeDeploy non è stato installato. Installa l'agente CodeDeploy.sudo service codedeploy-agent status
- Per verificare che l'agente CodeDeploy sia in esecuzione con il nome utente corretto, esegui il seguente comando:
Esempio di output:ps aux | grep codedeploy-agent
The AWS CodeDeploy agent is running as PID ####
Video correlati


Contenuto pertinente
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 6 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa