Basic TravisCI Information
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
TravisCI integriert sich direkt mit verschiedenen Git-Plattformen wie Github, Bitbucket, Assembla und Gitlab. Es wird den Benutzer auffordern, TravisCI die Berechtigung zu erteilen, 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.
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 Zweige anzugeben, für die die Geheimnisse verfügbar sein sollen (standardmäßig alle) und auch, ob TravisCI ihren Wert verbergen soll, wenn er in den Protokollen erscheint (standardmäßig wird es das tun).
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.
Du kannst auf den öffentlichen Schlüssel eines Repos zugreifen mit:
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.
Auf die gleiche Weise wie zuvor erlaubt TravisCI auch, Dateien zu verschlüsseln und sie während des Builds zu entschlüsseln:
Beachten Sie, dass beim Verschlüsseln einer Datei 2 Umgebungsvariablen im Repository konfiguriert werden, wie zum Beispiel:
Travis CI Enterprise ist eine On-Premise-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 zum Bereitstellen eines Kubernetes-Clusters; es 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 enthalten kann, 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.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)