Zugriff auf private Repositories
Es bestehen 2 Möglichkeiten für das Zugreifen auf private git-Repositories. Du kannst entweder das SSH oder HTTPS-Protokoll zur Authentifizierung des Repositories verwenden. Beide Möglichkeiten werden in den folgenden Abschnitten erläutert.
Mit SSH auf dein Repository zugreifen
Die Verwendung von SSH für den Zugriff auf private git-Repositories ist der von uns empfohlene Ansatz. Wenn du bereits ein einsatzfähiges SSH-Schlüsselpaar hast, kannst du diesen Abschnitt überspringen.
Um ein neues SSH-Schlüsselpaar zu erstellen, kannst du den Befehl ssh-keygen
verwenden. Auf Systemen, die auf macOS oder Linux basieren, wird ein neues
Schlüsselpaar zum Beispiel mit den folgenden Anweisungen erstellt:
ssh-keygen -t ed25519 -f ~/deploio.key -N ''
Damit wird ein privater SSH-Schlüssel im Format ed25519 generiert und sein
Inhalt wird in der Datei ~/deploio.key abgelegt. Der dazugehörige öffentliche
Teil wird unter ~/deploio.key.pub abgelegt. Der private Schlüssel ist nicht
passwortgeschützt. Dies ist wichtig, da Deploio sonst den Inhalt nicht lesen
kann.
Für einen zukünftigen Release ist geplant, dass nctl das SSH-Schlüsselpaar
automatisch für dich erstellt und den öffentlichen Teil ausgibt, sodass er nur
noch bei deinem git-Anbieter registriert werden muss (siehe unten).
Registrieren des öffentlichen Schlüssels
Der öffentliche Teil des soeben erstellten Schlüsselpaares muss bei deinem git-Anbieter registriert werden, damit Deploio den Inhalt des Repositories lesen kann. Dazu musst du einen sogenannten „Deploy Key“ erstellen. Links zur Dokumentation verschiedener git-Anbieter findest du in der folgenden Tabelle.
| Anbieter | Dokumentation |
|---|---|
| GitHub | Managing deploy keys |
| Bitbucket | SSH keys for system use |
| GitLab | Deploy keys |
Im Dialog für die Erstellung eines neuen Deploy Keys wirst du nach einem
„Titel“ oder „Namen“ gefragt. Du kannst diesen beliebig vergeben. Nutze
hier etwas, das auf den Client verweist, der den Deploy Key verwendet (z. B.
„deploio“). Danach musst du im „Key“ Feld den Inhalt der Datei einfügen,
welche deinen öffentlichen Schlüssel enthält (im obigen Beispiel
~/deploio.key.pub).
Du musst keine Schreibberechtigung für den Deploy Key vergeben, da ein Lesezugriff für Deploio ausreicht.
Konfiguration der Deploio-Anwendung
Sobald der Schlüssel registriert ist, können wir nctl verwenden, um die
Deploio-Anwendung zu erstellen. In diesem Beispiel verwenden wir GitHub als
Anbieter deines git-Repositories. Du kannst den git@github.com Teil
entsprechend mit der URL deines jeweiligen Anbieters ersetzen (z. B.
git@gitlab.com)
nctl create app <app name> \
--git-ssh-private-key-from-file=~/deploio.key \
--git-url=git@github.com:<path-to-your-repository>.git
Du kannst den Inhalt des privaten Schlüssels auch über die Umgebungsvariable $GIT_SSH_PRIVATE_KEY weitergeben oder mit $GIT_SSH_PRIVATE_KEY_FROM_FILE auf die Datei verweisen, die den privaten Schlüssel enthält.
Wenn die Anwendung bereits existiert, kannst du nctl update app verwenden, um
die SSH-Authentifizierung zu verwenden.
Mit HTTPS auf dein Repository zugreifen
Du kannst auch eine Kombination aus Benutzername/Passwort verwenden, um Deploio über HTTPS Zugriff auf dein git-Repository zu geben. Dazu solltest du am besten einen Repository Scoped Deploy Token erstellen, der nur für das Zugreifen auf ein bestimmtes Repository genutzt werden kann. Wir raten davon ab, einen personalisierten Deploy-/Zugriff-Token zu verwenden, da dieser direkt mit deinem Nutzerkonto verbunden ist und daher möglicherweise unnötig weitreichende Berechtigungen hat, die Deploio letztlich nicht braucht. Bitte gib dem Deploy Token auch kein Ablaufdatum. Aktuell ist die Nutzung von Repository Scoped Deploy Tokens nicht bei allen git-Anbietern möglich. Dies ist einer der Gründe dafür, dass wir die Nutzung von Deploy Keys empfehlen, da sie allgemein besser unterstützt werden.
Hier sind einige Links zur Dokumentation für die Nutzung von Repository Scoped Deploy Tokens bei verschiedenen git-Anbietern:
| Anbieter | Dokumentation | Bemerkung |
|---|---|---|
| Bitbucket | Repository Access Tokens | x-auth-token als Benutzernamen verwenden |
| GitLab | Deploy tokens |
Konfiguration der Deploio-Anwendung
Sobald du einen Repository Scoped Deploy Token erstellt hast, kannst du
mithilfe von nctl eine Anwendung erstellen:
nctl create app <app name> \
--git-username=<token username> \
--git-password=<token password> \
https://<path-to-your-repository>.git
Du kannst den Benutzernamen und das Passwort auch über die Umgebungsvariablen $GIT_USERNAME und $GIT_PASSWORD weitergeben.
Wenn die Anwendung bereits existiert, kannst du nctl update app verwenden, um
die HTTPS-Authentifizierung zu verwenden.