Wie führe ich AWS CLI auf einem Amazon-Linux-Container aus?

Wie führe ich AWS CLI auf einem Amazon-Linux-Container aus?

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.

verwandte Informationen