mirror of
https://github.com/gravitational/teleport.git
synced 2026-09-21 14:35:22 +08:00
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
- macOS 12.0+
- 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