Ich möchte Amazon-Linux-Befehle als Teil der Gitlab-Pipeline ausführen.
Versuchen Sie also, das Docker-Image als Runner zu verwenden.amazonlinux:neueste
Also habe ich eine Verbindung zum Docker-Container hergestellt und den folgenden Befehl ausgeführt.
yum -yq install aws-cli
Es installierte aws-cli
Dann AWS CLI konfigurieren.
aws configure set region $AWS_REGION
aws configure set aws_access_key_id $AWS_ACCESS_KEY
aws configure set aws_secret_access_key $AWS_SECRET_KEY
aws configure set plugins.bolt awscli-plugin-bolt
Habe dann den folgenden Befehl ausgeführt, um die Identität zu prüfen, habe aber die Fehlermeldung erhalten, dass „aws-cli-plugin-bolt“ nicht vorhanden ist.
aws sts get-caller-identity
Habe dann dafür Python Pip Install ausgeführt und bekam den Python 2.7-Veraltungsfehler und die Meldung „Modul nicht gefunden“.
pip install awscli-plugin-bolt
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip install --user` instead.
ERROR: Could not find a version that satisfies the requirement awscli-plugin-bolt (from versions: none)
ERROR: No matching distribution found for awscli-plugin-bolt
Also änderte ich Python auf Python 3 als Standardversion mit den folgenden Befehlen und der ReferenzSeite.
amazon-linux-extras enable python3.8
yum install python3.8
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
Und dann das Bolt-Plugin mit pip3 installiert.
yum install python3-pip
pip3 install awscli-plugin-bolt
Der folgende Befehl sucht jedoch immer noch nach Python 2 und schlägt fehl.
aws sts get-caller-identity
Also habe ich diesen Container gelöscht und einen neuen erstellt und dabei als ersten Schritt die Python-Version 3 als Standard geändert.
Aber dieses Mal schlägt die Yum-Installation von AWS-CLI selbst fehl.
bash-4.2# yum -yq install aws-cli
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
Bitte geben Sie an, wie Sie vom Docker-Image von Amazon Linux auf AWS-CLI-Befehle zugreifen können.
Es scheint, dass es funktioniert, wenn ich das Bild ändere in
image:
name: amazon/aws-cli
entrypoint: [""]
Ich muss also nicht selbst AWS CLI installieren. Aber es ist standardmäßig in 3.7 enthalten. Wie kann ich das als Teil des Images ändern? Und die große Frage: In Gitlab funktioniert das obige Image, mit Docker Run konnte ich das Image nicht direkt verwenden. Nur einzelne AWS-Befehle werden akzeptiert und der Container wird sofort geschlossen.