Wie man Teleport Community Version updatet
Leider hat die Dokumentation von Teleport derzeit noch ein paar Lücken über die Einsteiger am Anfang stolpern. Insbesondere beim update der Community Version gibt es Stolperfallen.
Lücken in der aktuellen Dokumentation
Wer die aktuelle Dokumentation zur Version 16 aufruft, wird feststellen das man zum Updaten des Servers und der Agent keine Informationen findet.
Wechseln wir jedoch in der Dokumentation zu Version 14, sehen wir die upgrading guides für self-hosted Linux Server.
Grundsätzlich können wir auch für Version 17 und 16 die Dokumentation für die Version 14 nutzen. Jedoch muss man wissen, das sich die Dokumentation immer auf die Enterprise Version bezieht.
Befehle wie z.B. "sudo apt-get install teleport-ent-updater" installieren die Enterprise Version des Agents, was dann natürlich zu einem Fehler führt, wenn die Community Version bereits installiert ist. Zu erkennen an dem "ent".
Die Community Version läst sich hingegen mit "sudo apt-get -y install teleport" updaten.
Was man vor dem Update einplanen muss
Der Server kann sich mit den Agents laut Dokumentation immer nur in der gleichen Version oder eine Version niedriger verbinden. Agents die eine Version höher als der Server sind, können sich nicht mehr verbinden.
Server Version | Agent Version | Verbindung |
---|---|---|
17 | 17 | OK |
17 | 16 | OK |
17 | 15 | X |
17 | 18 | X |
Es ist möglich, die Agents direkt von z.B. Version 14 auf Version 17 upzudaten. Anschließend muss man den Server auf Version 17 updaten, damit man wieder auf alle Clients zugreifen kann.
Auch der Server konnte in meinem Test direkt von Version 14 auf Version 17 geupdatet werden.
Was ist mit den automatischen Agents updates?
Diese Funktion steht nur in der Enterprise Version zur Verfügung und ist in der Community Version nicht enthalten. Daher müssen Benutzer der Community Version ihre Agents manuell updaten.
Entgegen der Dokumentation in Step 2/5 wird laut einer Github Diskussion kein Amazon S3 oder Google Cloud Storage für das Terraform benötigt. Da ich aber nur die Community Version getestet habe, kann ich dazu keine Anleitung erstellen.
Wie kann ich den Teleport Server updaten?
Hier habe ich mich der Dokumentation in der Version 14 bedient. Welche Version gerade die aktuelle ist, kann man in den Github Releases nachsehen: https://github.com/gravitational/teleport/releases
Zunächst prüfe ich die tctl und tsh Version, damit ich den IST-Zustand kenne:
tctl version
tsh version
In den Github Releases suche ich mir nun die nächst höhere Version. Habe ich aktuell die Version 16 im Einsatz, wäre ein update auf Version 17.0.2 möglich.
Das Update kann ich mit folgendem Script starten:
curl https://goteleport.com/static/install.sh | bash -s 17.0.2
Anschließend prüfe ich ob die korrekte Version installiert wurde:
teleport version
und aktiviere den Teleport Dienst und starte ihn anschließend neu:
sudo systemctl enable teleport
sudo systemctl start teleport
Damit das Webinterface auch in Version 17 angezeigt wird, muss man noch den Server neustarten.
Wie kann ich die Teleport Agents updaten?
Auch hier bediene ich mich der Dokumentation der Version 14. Jedoch ist es Step 5/5 von der self-hosted automatic agent udpates Dokumentation!
Dazu verbinde ich mich per SSH oder Teleport auf die Clients und starte mit dem download des Teleport Public PGP Keys:
sudo curl https://apt.releases.teleport.dev/gpg \
-o /usr/share/keyrings/teleport-archive-keyring.asc
Source Variable OS
source /etc/os-release
Teleport APT repository hinzufügen, hier muss die gewünschte Agent Version bei stable/v17 angegeben werden.
echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] \
https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v17" \
| sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null
Apt updaten:
apt-get update
Und anschließend den Teleport Community Version Agent installieren:
apt-get -y install teleport
Die Version des Agents können wir wieder mittels "tctl version" prüfen.