Ich versuche, travis-ci zu erhalten, um ein benutzerdefiniertes Bereitstellungsskript auszuführen, das awscli
, um eine Bereitstellung auf meinen Staging-Server zu verschieben.
In meiner .travis.yml
Datei habe ich folgendes:
Und ich habe die folgenden Umgebungsvariablen eingerichtet:
%Vor% mit ihren korrekten Werten in der Weboberfläche travis-ci
.
Wenn jedoch aws configure
ausgeführt wird, stoppt es und wartet auf Benutzereingaben. Wie kann ich sagen, dass die von mir definierten Umgebungsvariablen verwendet werden sollen?
Sie können diese auf verschiedene Arten einstellen.
Erstens, indem Sie eine Datei in ~/.aws/config
(oder ~/.aws/credentials
) erstellen.
Zum Beispiel:
%Vor%Zweitens können Sie Umgebungsvariablen für jede Ihrer Einstellungen hinzufügen.
Erstellen Sie beispielsweise die folgenden Umgebungsvariablen:
%Vor%Drittens können Sie region in als Befehlszeilenargument übergeben. Zum Beispiel:
%Vor% Sie müssen in diesen Fällen aws configure
nicht ausführen, da der CLI konfiguriert ist.
Weitere AWS-Dokumentation zu dieser Seite .
Darbio 's Lösung funktioniert gut, aber es berücksichtigt nicht, dass Sie am Ende Ihre AWS-Anmeldeinformationen in Ihr Repository schieben.
Das ist eine schlechte Sache , besonders wenn docker versucht, ein privates Image aus einem Ihrer ECR-Repositories zu ziehen. Das würde bedeuten, dass Sie wahrscheinlich Ihre AWS-Produktionsanmeldeinformationen in der Datei .travis.yml
speichern mussten, und das ist alles andere als ideal.
Zum Glück gibt Travis Ihnen die Möglichkeit, Umgebungsvariablen, Benachrichtigungseinstellungen und API-Schlüssel zu verschlüsseln.
%Vor% Machen Sie zuerst travis login
, dann werden Sie nach Ihren github-Zugangsdaten gefragt. Sobald Sie eingeloggt sind, gehen Sie in Ihren Projektstammordner (wo Ihre .travis.yml
-Datei ist) und verschlüsseln Sie Ihre Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel.
Dank der Option --add
erhalten Sie zwei neue (verschlüsselte) Umgebungsvariablen in Ihrer Konfigurationsdatei. Öffnen Sie jetzt einfach Ihre .travis.yml
-Datei und Sie sollten in etwa folgendes sehen:
Nun können Sie travis veranlassen, ein Shell-Skript auszuführen, das die ~/.aws/credentials
-Datei für Sie erstellt.
ecr_credentials.sh
%Vor% Dann müssen Sie nur das Skript ecr_credentials.sh
von Ihrer .travis.yml
-Datei ausführen:
Fertig! : - D
Quelle: Tasten auf Travis CI
Tags und Links configuration amazon-web-services travis-ci continuous-deployment aws-cli