Grundlegende TravisCI-Informationen
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Zugriff
TravisCI integriert sich direkt mit verschiedenen Git-Plattformen wie Github, Bitbucket, Assembla und Gitlab. Es wird den Benutzer auffordern, TravisCI die Berechtigungen zu erteilen, um auf die Repos zuzugreifen, die er mit TravisCI integrieren möchte.
Zum Beispiel wird es in Github nach den folgenden Berechtigungen fragen:
user:email
(nur lesen)read:org
(nur lesen)repo
: Gewährt Lese- und Schreibzugriff auf Code, Commit-Status, Mitwirkende und Bereitstellungsstatus für öffentliche und private Repositories und Organisationen.
Verschlüsselte Geheimnisse
Umgebungsvariablen
In TravisCI, wie in anderen CI-Plattformen, ist es möglich, Geheimnisse auf Repo-Ebene zu speichern, die verschlüsselt gespeichert werden und entschlüsselt und in der Umgebungsvariable der Maschine, die den Build ausführt, übertragen werden.
Es ist möglich, die Branches anzugeben, für die die Geheimnisse verfügbar sein sollen (standardmäßig alle) und auch, ob TravisCI den Wert verbergen soll, wenn er in den Protokollen erscheint (standardmäßig wird es das tun).
Benutzerdefinierte verschlüsselte Geheimnisse
Für jedes Repo generiert TravisCI ein RSA-Schlüsselpaar, behält den privaten Schlüssel und macht den öffentlichen Schlüssel des Repositories für diejenigen verfügbar, die Zugriff auf das Repository haben.
Sie können auf den öffentlichen Schlüssel eines Repos zugreifen mit:
travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test
Dann können Sie dieses Setup verwenden, um Geheimnisse zu verschlüsseln und sie zu Ihrer .travis.yaml
hinzuzufügen. Die Geheimnisse werden entschlüsselt, wenn der Build ausgeführt wird und sind in den Umgebungsvariablen zugänglich.
Beachten Sie, dass die auf diese Weise verschlüsselten Geheimnisse nicht in den Umgebungsvariablen der Einstellungen aufgeführt werden.
Benutzerdefinierte verschlüsselte Dateien
Auf die gleiche Weise wie zuvor erlaubt TravisCI auch, Dateien zu verschlüsseln und sie während des Builds zu entschlüsseln:
travis encrypt-file super_secret.txt -r carlospolop/t-ci-test
encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption
Please add the following to your build script (before_install stage in your .travis.yml, for instance):
openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
Pro Tip: You can add it automatically by running with --add.
Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.
Beachten Sie, dass beim Verschlüsseln einer Datei 2 Umgebungsvariablen im Repository konfiguriert werden, wie zum Beispiel:
TravisCI Enterprise
Travis CI Enterprise ist eine On-Prem-Version von Travis CI, die Sie in Ihrer Infrastruktur bereitstellen können. Denken Sie an die 'Server'-Version von Travis CI. Die Verwendung von Travis CI ermöglicht es Ihnen, ein benutzerfreundliches Continuous Integration/Continuous Deployment (CI/CD)-System in einer Umgebung zu aktivieren, die Sie nach Ihren Wünschen konfigurieren und sichern können.
Travis CI Enterprise besteht aus zwei Hauptteilen:
- TCI Dienste (oder TCI Core Services), verantwortlich für die Integration mit Versionskontrollsystemen, die Autorisierung von Builds, die Planung von Build-Jobs usw.
- TCI Worker und Build-Umgebungsbilder (auch als OS-Bilder bezeichnet).
TCI Core-Dienste erfordern Folgendes:
- Eine PostgreSQL11 (oder später) Datenbank.
- Eine Infrastruktur zur Bereitstellung eines Kubernetes-Clusters; sie kann in einem Server-Cluster oder auf einer einzelnen Maschine bereitgestellt werden, wenn erforderlich.
- Abhängig von Ihrer Konfiguration möchten Sie möglicherweise einige der Komponenten selbst bereitstellen und konfigurieren, z. B. RabbitMQ - siehe die Einrichtung von Travis CI Enterprise für weitere Details.
TCI Worker erfordert Folgendes:
- Eine Infrastruktur, in der ein Docker-Image, das den Worker und ein verknüpftes Build-Image enthält, bereitgestellt werden kann.
- Konnektivität zu bestimmten Komponenten der Travis CI Core Services - siehe die Einrichtung des Workers für weitere Details.
Die Anzahl der bereitgestellten TCI Worker und Build-Umgebungs-OS-Bilder bestimmt die gesamte gleichzeitige Kapazität der Travis CI Enterprise-Bereitstellung in Ihrer Infrastruktur.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.