mirror of
https://github.com/gravitational/teleport.git
synced 2026-11-03 07:40:28 +08:00
https://github.com/GoogleContainerTools/distroless#debian-12 Note that the debian12 images no longer include OpenSSL, which we don't need anyway, as we statically link our own copy for tsh and other purposes. Also, add Debian 12 to various places, as a supported OS. Other included changes: * Remove Debian 8 and 9, as they aren't receiving any security updates. * Standardize how we select which distroless release to use. * Ensure a specific distroless version is used instead of latest. * Add new Amazon Linux and Oracle Linux releases to compatibility testing. * Correct s/MacOS/macOS/ in install script. `e` companion -- https://github.com/gravitational/teleport.e/pull/2154
Automated node join script for Teleport
This is an automated node join script for Teleport, which does the following:
- checks for an existing Teleport process, data directory, config file or Teleport binaries (and provides details how to clean up if any of these are present)
- tests connectivity to the given Teleport server host and port
- using either
nc,telnetor/dev/tcpif available - if none of these are available this step is skipped
- using either
- detects OS, distribution, architecture and appropriate Teleport package format, then downloads this package to a temporary directory and installs it
tarfor tarball extraction if neededdpkgfor .deb installsdnf,yumorrpmfor .rpm installs
- generates a Teleport config to set up a node and writes it to disk
- installs and starts Teleport
- via
systemdon Linux - via
launchctlon MacOS
- via
- cleans up downloaded archives afterwards
Things it doesn't do (yet):
- validate the checksum of the downloaded Teleport artifact against the published checksum
Supported operating systems, architectures and distributions
-
Linux
- Architectures
- i386
- x86_64
- armv7l
- aarch64 (no Teleport binaries available yet)
- Any Debian-based distribution
- Debian 8+
- Ubuntu 18.04+
- uses
.debpackage
- uses
- Any CentOS-based distribution
- CentOS 6+*
- RHEL 6+*
- CentOS 6 and RHEL 6 will use the special
centos6tarball package to handle the lower glibc version.
- CentOS 6 and RHEL 6 will use the special
- Fedora 27+
- Amazon Linux 2+
- uses
.rpmpackage
- uses
- Any other distribution
- uses
.tar.gztarball package
- uses
- Architectures
-
MacOS
- Architectures
- x86_64
- aarch64 (no Teleport binaries available yet)
- MacOS 10.12+
- uses
.tar.gztarball package
- uses
- Architectures
Arguments
Required arguments:
| Flag | Description | Example value | Required |
|---|---|---|---|
-v |
Teleport version | 4.3.5 |
yes |
-h |
Hostname for the Teleport Proxy Service | teleport.example.com |
yes |
-j |
A valid node join token | ool7ahpo4thohmeuS1gieY7laiwae7oo |
yes |
-c |
The CA pin hash of the cluster being joined | sha256:6abdd3a143a230fd31c9706d668bba3ee25a6e0eec54fcd69680c1ec0530fe9c |
yes |
-p |
Port connect to on the Teleport Proxy Service | 3080 |
no |
If any of these arguments is not provided via CLI flags, they will be requested interactively at runtime.
Optional extra flags:
| Flag | Description | Example value | Required |
|---|---|---|---|
-q |
Enable quiet mode | n/a | no |
-l |
Write logs to file | /var/log/teleport-node-installer.log |
no |
Example usage
$ bash ./install.sh \
-j ool7ahpo4thohmeuS1gieY7laiwae7oo \
-c sha256:6abdd3a143a230fd31c9706d668bba3ee25a6e0eec54fcd69680c1ec0530fe9c \
-h teleport.example.com \
-p 3080 \
-v 4.3.5