Come posso eseguire l'agente CodeDeploy con un profilo utente diverso dal profilo root?

5 minuti di lettura
0

Voglio eseguire l'agente AWS CodeDeploy con un profilo utente diverso dal profilo root.

Breve descrizione

Per eseguire l'agente CodeDeploy con un profilo utente diverso dal profilo root, procedi come segue:

1.    (Prerequisito) Verifica che l'agente CodeDeploy sia installato sulla tua istanza Amazon Elastic Compute Cloud (Amazon EC2).

2.    Cambia l'utente nel file di configurazione dell'agente CodeDeploy e concedi all'utente le autorizzazioni richieste.

3.    Crea un modello di configurazione di avvio di Amazon EC2 e un gruppo con dimensionamento automatico per automatizzare il processo di modifica degli utenti.

4.    Testa la configurazione verificando che l'agente CodeDeploy sia installato e in esecuzione con l'utente corretto sulla tua istanza Amazon EC2.

Nota: questi passaggi si applicano alle istanze che utilizzano Amazon Linux 1 o Amazon Linux 2 Amazon Machine Image (AMI). Tuttavia, l'AMI Amazon Linux 1 è in stato di supporto alla manutenzione. In questo stato, l'AMI riceve solo aggiornamenti di sicurezza critici e importanti per un set ridotto di pacchetti. Inoltre, non è più garantito che l'AMI supporti le nuove funzionalità della piattaforma EC2 o le nuove funzionalità di AWS.

Soluzione

Nota: se visualizzi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia della linea di comando AWS.

(Prerequisito) Verifica che l'agente CodeDeploy sia installato sulla tua istanza Amazon EC2

Segui le istruzioni in Verifica che l'agente CodeDeploy sia in esecuzione nella Guida per l'utente di CodeDeploy.

Per istruzioni su come installare l'agente CodeDeploy, consulta Installare l'agente CodeDeploy.

Cambia l'utente nel file di configurazione dell'agente CodeDeploy e concedi all'utente le autorizzazioni richieste

1.    Connettiti alla tua istanza Amazon EC2 tramite SSH.

2.    Arresta l'agente host CodeDeploy installato sull'istanza eseguendo il seguente comando:

sudo service codedeploy-agent stop

3.    Cambia l'utente nel file di configurazione dell'agente CodeDeploy eseguendo il seguente comando sed stream editor:

Importante: sostituisci **ec2-user ** con il nome utente su cui vuoi che venga eseguito l'agente host CodeDeploy.

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

Importante: per le AMI di Amazon Linux 2, devi anche eseguire i due comandi seguenti:

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

4.    Concedi al nuovo utente le autorizzazioni per le directory richieste eseguendo i due comandi seguenti:

Importante: sostituisci **ec2-user ** con il nome utente su cui vuoi che venga eseguito l'agente host CodeDeploy.

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

5.    Riavvia l'agente CodeDeploy e conferma che gli aggiornamenti al file di configurazione siano stati completati correttamente eseguendo i due comandi seguenti:

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

Esempio di output di un comando riuscito

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

6.    Verifica quali processi sono in esecuzione e quale utente li sta eseguendo attraverso il seguente comando:

ps aux | grep codedeploy-agent

Crea un modello di configurazione di avvio di Amazon EC2 e un gruppo con dimensionamento automatico per automatizzare il processo di modifica degli utenti

Per confermare che l'agente CodeDeploy sia installato e in esecuzione con l'utente corretto all'avvio di nuove istanze, procedi come segue:

1.    Apri la console Amazon EC2.

2.    Nel riquadro di navigazione, scegli Configurazioni di avvio.

3.    Scegli Crea configurazione di avvio.

4.    Seleziona l'AMI Amazon Linux.

5.    Scegli Avanti: Configura i dettagli.

6.    Per il ruolo IAM, scegli un ruolo AWS Identity and Access Management (IAM) preconfigurato. Il ruolo deve concedere all'istanza EC2 l'autorizzazione ad accedere alle risorse di Amazon Simple Storage Service (Amazon S3).

7.    Scegli Dettagli avanzati.

8.    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.

Esempio di file di configurazione dell'agente

Importante: sostituisci **ec2-user ** con il nome utente su cui vuoi che venga eseguito l'agente host CodeDeploy. Il codice di esempio seguente viene eseguito automaticamente all'avvio di una nuova istanza che utilizza la configurazione di avvio definita.

#!/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.    Se necessario, completa i passaggi rimanenti dell'AWS Launch Wizard. Quindi, scegli Crea configurazione di avvio.

10.    Scegli Crea un gruppo con dimensionamento automatico utilizzando questa configurazione di avvio.

11.    In Nome gruppo, inserisci un nome per il tuo gruppo con dimensionamento automatico.

12.    In Sottorete, inserisci una sottorete che consenta alla tua istanza di accedere a Internet.

13.    Scegli Avanti: Configura le policy di scalabilità. Quindi, scegli una policy in base alle tue esigenze.

14.    Completa il resto dei passaggi del Launch Wizard. Quindi, scegli Crea gruppo con dimensionamento automatico.

Testa la configurazione verificando che l'agente CodeDeploy sia installato e in esecuzione con l'utente corretto su una nuova istanza Amazon EC2

Verifica che la tua istanza Amazon EC2 sia in esecuzione. Quindi, procedi come segue:

1.    Connettiti alla tua istanza Amazon EC2 tramite SSH.

2.    Verifica che l'agente CodeDeploy sia in esecuzione sull'istanza Amazon EC2 eseguendo il seguente comando:

sudo service codedeploy-agent status

3.    Verifica che l'agente CodeDeploy sia in esecuzione sul nome utente corretto eseguendo il seguente comando:

ps aux | grep codedeploy-agent

Esempio di output di un comando riuscito

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

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa