mirror of
https://github.com/gravitational/teleport.git
synced 2026-11-01 13:39:37 +08:00
81 lines
2.8 KiB
Markdown
81 lines
2.8 KiB
Markdown
# 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`, `telnet` or `/dev/tcp` if available - if none of these are available this step is skipped
|
|
- detects OS, distribution, architecture and appropriate Teleport package format, then downloads this package to a temporary directory and installs it
|
|
- `tar` for tarball extraction if needed
|
|
- `dpkg` for .deb installs
|
|
- `dnf`, `yum` or `rpm` for .rpm installs
|
|
- generates a Teleport config to set up a node and writes it to disk
|
|
- installs and starts Teleport
|
|
- via `systemd` on Linux
|
|
- via `launchctl` on MacOS
|
|
- 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 `.deb` package
|
|
- Any CentOS-based distribution
|
|
- CentOS 6+*
|
|
- RHEL 6+*
|
|
- CentOS 6 and RHEL 6 will use the special `centos6` tarball package to handle the lower glibc version.
|
|
- Fedora 27+
|
|
- Amazon Linux 2+
|
|
- uses `.rpm` package
|
|
- Any other distribution
|
|
- uses `.tar.gz` tarball package
|
|
|
|
- MacOS
|
|
- Architectures
|
|
- x86_64
|
|
- aarch64 (no Teleport binaries available yet)
|
|
- MacOS 10.12+
|
|
- uses `.tar.gz` tarball package
|
|
|
|
## 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
|
|
|
|
```console
|
|
$ bash ./install.sh \
|
|
-j ool7ahpo4thohmeuS1gieY7laiwae7oo \
|
|
-c sha256:6abdd3a143a230fd31c9706d668bba3ee25a6e0eec54fcd69680c1ec0530fe9c \
|
|
-h teleport.example.com \
|
|
-p 3080 \
|
|
-v 4.3.5
|
|
```
|