Basic TravisCI Information

Unterstütze HackTricks

Zugriff

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.

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 ihren 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.

Du kannst 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-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:

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

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

TCI Core-Dienste erfordern Folgendes:

  1. Eine PostgreSQL11 (oder später) Datenbank.

  2. Eine Infrastruktur zum Bereitstellen eines Kubernetes-Clusters; es kann in einem Server-Cluster oder auf einer einzelnen Maschine bereitgestellt werden, wenn erforderlich.

  3. 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:

  1. Eine Infrastruktur, in der ein Docker-Image, das den Worker und ein verknüpftes Build-Image enthalten kann, bereitgestellt werden kann.

  2. 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.

Support HackTricks

Last updated