Basic TravisCI Information

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Zugriff

TravisCI integriert sich direkt mit verschiedenen Git-Plattformen wie Github, Bitbucket, Assembla und Gitlab. Es wird den Benutzer auffordern, TravisCI Berechtigungen zum Zugriff auf die Repos zu geben, die er mit TravisCI integrieren möchte.

Beispielsweise wird in Github um folgende Berechtigungen gebeten:

  • 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 Secrets

Umgebungsvariablen

In TravisCI, wie auch in anderen CI-Plattformen, ist es möglich, auf Repo-Ebene Secrets zu speichern, die verschlüsselt werden und entschlüsselt und in die Umgebungsvariable der Maschine, die den Build ausführt, eingefügt werden.

Es ist möglich anzugeben, für welche Branches die Secrets verfügbar sein sollen (standardmäßig alle) und auch, ob TravisCI den Wert verbergen sollte, wenn er in den Logs erscheint (standardmäßig wird er das).

Benutzerdefinierte verschlüsselte Secrets

Für jedes Repo generiert TravisCI ein RSA-Schlüsselpaar, behält den privaten Schlüssel und stellt den öffentlichen Schlüssel des Repositories denen zur Verfügung, die Zugriff auf das Repository haben.

Sie können den öffentlichen Schlüssel eines Repos 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 es 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.

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 konfigurieren und sichern können, wie Sie möchten.

Travis CI Enterprise besteht aus zwei Hauptteilen:

  1. TCI Dienste (oder TCI-Kernservices), die für die Integration mit Versionskontrollsystemen, die Autorisierung von Builds, die Planung von Build-Jobs usw. verantwortlich sind.

  2. TCI Worker und Build-Umgebungsbilder (auch OS-Bilder genannt).

TCI-Kernservices erfordern Folgendes:

  1. Eine PostgreSQL11 (oder neuere) Datenbank.

  2. Eine Infrastruktur zur Bereitstellung eines Kubernetes-Clusters; es kann in einem Servercluster bereitgestellt werden oder in einer einzelnen Maschine, wenn erforderlich.

  3. Je nach Ihrer Konfiguration möchten Sie möglicherweise einige der Komponenten selbst bereitstellen und konfigurieren, z. B. RabbitMQ - siehe Einrichten von Travis CI Enterprise für weitere Details.

TCI Worker erfordert Folgendes:

  1. Eine Infrastruktur, auf der ein Docker-Image bereitgestellt werden kann, das den Worker und ein verknüpftes Build-Image enthält.

  2. Konnektivität zu bestimmten Komponenten der Travis CI-Kernservices - siehe Einrichten des Workers für weitere Details.

Die Anzahl der bereitgestellten TCI Worker und Build-Umgebung-OS-Bilder bestimmt die Gesamtkapazität von Travis CI Enterprise in Ihrer Infrastruktur.

Last updated