- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with puppet-teleport
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
This module will download, install and configure Teleport a cluster SSH tool created by Gravitational.
For more information about Teleport, see the documentation
puppet-teleport will:
- Download the required golang binary from the teleport releases page and install it
- Create a service/init script on your OS to start teleport
- Configure the yaml config file and set up the required role
By default, puppet-teleport will configure teleport with a "node" role. Simple include the teleport module like so
include ::teleport
Teleport has multiple roles which are run from the same binary. In order to configure the use of these roles, you need to configure them in the yaml, and these can be done as parameters to the main teleport class. An example of this might be:
class { '::teleport':
proxy_enable => true,
proxy_listen_addr => '0.0.0.0',
}
include ::teleport
class { '::teleport':
auth_enable => true,
proxy_enable => true,
}
class { '::teleport':
auth_servers => ['192.168.4.10', 192.168.4.11'],
}
teleport
: Installs and configured teleport in your environment
- [
teleport::install
]: Downloads the teleport binary and installs it in your env - [
teleport::config
]: Configure the service and the teleport config file - [
teleport::service
]: Manage the teleport service
Specifies the version of teleport to download
Where to download the teleport tarball
Directory to extract teleport
Where to symlink teleport binaries
Where to sylink the teleport web assets
Teleport nodename. Default: $::fqdn
Teleport data directory.
The auth token to use when joining the cluster
When running in NAT'd environments, designates an IP for teleport to advertise.
Which storage backend to use.
Configure max connections for teleport
Teleport max users
Log destination
Log output level. Default: "ERROR"
Path to config file for teleport. Default: /etc/teleport.yaml
An array of auth servers to connect to
Whether to start the auth service. Default: false
Whether dynamic configuration for the configuration should be on or off
Address to listen for auth_service
Port to listen on for auth server
The provisioning tokens for the auth tokens
An optional cluster name to assign to the cluster
Specifies the other cluster to trust. Default: empty hash
Whether to start SSH service. Default: true
Address to listen on for SSH connections. Default: 0.0.0.0
Port to listen on for SSH connection
A hash of labels to assign to hosts
Where to start the proxy service. Default. false
Address to listen on for proxy
Port to listen on for proxy connection
Port to listen on for web proxy connections
Enable or disable SSL support. Default: false
Path to SSL key for proxy
Path to SSL cert for proxy
Which init system to use to start the service.
Whether puppet should manage and configure the service
State of the teleport service (Running/Stopped)
Whether the service should be enabled on startup
Currently only works on Linux