Wie kann ich den CodeDeploy-Agent mit einem Benutzerprofil ausführen, das nicht das Stammprofil ist?

Lesedauer: 5 Minute
0

Ich möchte den AWS CodeDeploy-Agent mit einem Benutzerprofil ausführen, das nicht das Stammprofil ist.

Kurzbeschreibung

Gehen Sie wie folgt vor, um den CodeDeploy-Agent mit einem Benutzerprofil auszuführen, das nicht das Stammprofil ist:

1.(Voraussetzung) Stellen Sie sicher, dass der CodeDeploy-Agent auf Ihrer Amazon Elastic Compute Cloud (Amazon EC2)-Instance installiert ist.

2.Ändern Sie den Benutzer in Ihrer CodeDeploy-Agent-Konfigurationsdatei und gewähren Sie dem Benutzer die erforderlichen Berechtigungen.

3.Erstellen Sie eine Amazon EC2-Startkonfigurationsvorlage und eine Auto-Scaling-Gruppe, um den Prozess zur Benutzeränderung zu automatisieren.

4.Testen Sie die Einrichtung, indem Sie sicherstellen, dass der CodeDeploy-Agent installiert ist und mit dem richtigen Benutzer auf Ihrer Amazon EC2-Instance ausgeführt wird.

Hinweis: Diese Schritte gelten für Instances, die Amazon Linux 1 oder Amazon Linux 2 Amazon Machine Image (AMI) verwenden. Das Amazon Linux 1-AMI befindet sich jedoch im Status Wartungsunterstützung. In diesem Status erhält das AMI nur kritische und wichtige Sicherheitsupdates für eine reduzierte Anzahl von Paketen. Zudem ist nicht mehr garantiert, dass das AMI neue EC2-Plattformfunktionen oder neue AWS-Funktionen unterstützt.

Lösung

Hinweis: Wenn Sie beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.

(Voraussetzung) Sicherstellen, dass der CodeDeploy-Agent auf Ihrer Amazon EC2-Instance installiert ist

Folgen Sie den Anweisungen unter Überprüfen, ob der CodeDeploy-Agent ausgeführt wird im CodeDeploy-Benutzerhandbuch.

Anweisungen zur Installation des CodeDeploy-Agents finden Sie unter Installieren des CodeDeploy-Agents.

Ändern Sie den Benutzer in Ihrer CodeDeploy-Agent-Konfigurationsdatei und gewähren Sie dem Benutzer die erforderlichen Berechtigungen

1.Stellen Sie mithilfe von SSH eine Verbindung zu Ihrer Amazon EC2-Instance her.

2.Stoppen Sie den CodeDeploy-Host-Agent, der auf der Instance installiert ist, indem Sie den folgenden Befehl ausführen:

sudo service codedeploy-agent stop

3.Ändern Sie den Benutzer in der CodeDeploy-Agent-Konfigurationsdatei, indem Sie den folgenden Befehl im SED-Stream-Editor ausführen:

Wichtig: Ersetzen Sie ec2-user durch den Benutzernamen, mit dem der CodeDeploy-Host-Agent ausgeführt werden soll.

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

Wichtig: Für Amazon Linux 2-AMIs müssen Sie außerdem die folgenden beiden Befehle ausführen:

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

4.Gewähren Sie dem neuen Benutzer Berechtigungen für die erforderlichen Verzeichnisse, indem Sie die folgenden beiden Befehle ausführen:

Wichtig: Ersetzen Sie ec2-user durch den Benutzernamen, mit dem der CodeDeploy-Host-Agent ausgeführt werden soll.

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

5.Starten Sie den CodeDeploy-Agent neu und vergewissern Sie sich, dass Ihre Aktualisierungen der Konfigurationsdatei erfolgreich waren, indem Sie die folgenden beiden Befehle ausführen:

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

Beispiel für eine erfolgreiche Befehlsausgabe

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

6.Überprüfen Sie, welche Prozesse ausgeführt werden und welcher Benutzer diese Prozesse ausführt, indem Sie den folgenden Befehl ausführen:

ps aux | grep codedeploy-agent

Eine Amazon EC2-Startkonfigurationsvorlage und eine Auto-Scaling-Gruppe erstellen, um den Prozess zur Benutzeränderung zu automatisieren

Gehen Sie wie folgt vor, um zu überprüfen, ob der CodeDeploy-Agent installiert ist und mit dem richtigen Benutzer ausgeführt wird, wenn neue Instances gestartet werden:

1.Öffnen Sie die Amazon EC2-Konsole.

2.Wählen Sie im Navigationsbereich Startkonfigurationen aus.

3.Wählen Sie Startkonfiguration erstellen aus.

4.Wählen Sie das Amazon Linux AMI aus.

5.Wählen Sie Weiter: Details konfigurieren aus.

6.Wählen Sie für die IAM-Rolle eine vorkonfigurierte AWS Identity and Access Management (IAM)-Rolle aus. Die Rolle muss Ihrer EC2-Instance die Berechtigung gewähren, auf Amazon Simple Storage Service (Amazon S3)-Ressourcen zuzugreifen.

7.Wählen Sie Erweiterte Details.

8.Geben Sie im Abschnitt Benutzerdaten der Konfigurationsdatei des Agents die Befehle zur Installation des CodeDeploy-Agents ein. Aktualisieren Sie dann die Datei, um einen bestimmten Benutzer zu verwenden.

Beispiel für eine Agent-Konfigurationsdatei

Wichtig: Ersetzen Sie ec2-user durch den Benutzernamen, mit dem der CodeDeploy-Host-Agent ausgeführt werden soll. Der folgende Beispielcode wird automatisch ausgeführt, wenn eine neue Instance gestartet wird, die die definierte Startkonfiguration verwendet.

#!/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.Führen Sie die verbleibenden Schritte im AWS Launch Wizard nach Bedarf aus. Wählen Sie dann Startkonfiguration erstellen aus.

10.Wählen Sie Mit dieser Startkonfiguration eine Auto-Scaling-Gruppe erstellen aus.

11.Geben Sie unter Gruppenname einen Namen für Ihre Auto-Scaling-Gruppe ein.

12.Geben Sie für Subnetz ein Subnetz ein, das Ihrer Instance den Zugriff auf das Internet ermöglicht.

13.Wählen Sie Weiter: Skalierungsrichtlinien konfigurieren aus. Wählen Sie dann eine Richtlinie aus, die Ihren Anforderungen entspricht.

14.Führen Sie die restlichen Schritte im Launch Wizard aus. Wählen Sie dann Auto-Scaling-Gruppe erstellen aus.

Testen Sie die Konfiguration, indem Sie sich vergewissern, dass der CodeDeploy-Agent installiert ist und mit dem richtigen Benutzer auf einer neuen Amazon EC2-Instance ausgeführt wird

Vergewissern Sie sich, dass Ihre Amazon EC2-Instance läuft. Gehen Sie dann wie folgt vor:

1.Stellen Sie mithilfe von SSH eine Verbindung zu Ihrer Amazon EC2-Instance her.

2.Stellen Sie sicher, dass der CodeDeploy-Agent auf der Amazon EC2-Instance ausgeführt wird, indem Sie den folgenden Befehl ausführen:

sudo service codedeploy-agent status

3.Stellen Sie sicher, dass der CodeDeploy-Agent unter dem richtigen Benutzernamen ausgeführt wird, indem Sie den folgenden Befehl ausführen:

ps aux | grep codedeploy-agent

Beispiel für eine erfolgreiche Befehlsausgabe

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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren