AWS CLI kann in Jenkins aufgrund des Fehlers „Anmeldeinformationen nicht gefunden“ nicht verwendet werden

AWS CLI kann in Jenkins aufgrund des Fehlers „Anmeldeinformationen nicht gefunden“ nicht verwendet werden

Ich verwende Jenkins für CI. Ich muss in der Lage sein, eine Datei aus einem S3-Bucket abzurufen. Innerhalb des Jenkins-Jobs führe ich die folgende Diagnose von der Jenkins-Shell aus:

cd ~

das bringt mich zu /var/lib/jenkins

whoami

dies gibt den Benutzer Jenkins zurück

in /var/lib/jenkins habe ich meinen .aws-Ordner mit der Konfigurations- und Anmeldeinformationsdatei, aber wenn ich

aws configure list

Ich bekomme Folgendes:

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key                <not set>             None    None
secret_key                <not set>             None    None
    region                <not set>             None    None

Da ist nichts, obwohl ich den .aws-Ordner und die richtigen Informationen in diesen beiden Dateien habe. Ich habe ursprünglich versucht, den .aws-Ordner in /home/jenkins zu platzieren, aber das hat auch nicht funktioniert.

Also, wie bringe ich Jenkins dazu, tatsächlich mit der AWS-CLI zu funktionieren?

Antwort1

Sie können die Anmeldeinformationen als Umgebungsvariablen exportieren:

$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2

Sehenhttp://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.htmlfür weitere Informationen. Je nachdem, wie Sie Jenkins verwenden, möchten Sie möglicherweise dieEvnInject-Plugin

Antwort2

Diese Methode hat bei mir funktioniert:

  1. Erstellen Sie darin ein Verzeichnis /var/lib/jenkinsmit dem Namen .aws (oder kopieren Sie den Ordner .aws aus dem Home-Verzeichnis, wenn Sie Ihre AWS-Anmeldeinformationen bereits mit dem Befehl „aws configure“ konfiguriert haben).
  2. Gehen Sie dann nach unten /var/lib/jenkins/.awsund schreiben Sie sudo shown -R jenkins ./, um den Besitzer für Dateien im .aws-Verzeichnis zu ändern.

Antwort3

Bitte aktualisieren Sie Ihre AWS-Anmeldeinformationen innerhalb der Bash des Jenkins-Servers. Führen Sie die folgenden Befehle aus:

# sudo -su jenkins
# aws configure

Referenzlink:http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ami-jenkins.html

Antwort4

Wenn dieses Problem bei Verwendung der Instanzrolle im Unternehmensnetzwerk auftritt, stellen Sie sicher, dass die Proxy-Einstellungen korrekt sind.

verwandte Informationen