Teleport Editions Supported
Relevant source files
The following files were used as context for generating this wiki page:
The ansible-teleport role is designed to accommodate different deployment scenarios of the Teleport Access Plane by supporting multiple editions of the software. This flexibility allows administrators to use the same Ansible infrastructure to manage community-driven open-source instances, self-hosted enterprise clusters, or managed cloud environments.
The selection of a specific edition influences how the installation script is executed and how the binary is sourced during the deployment process. By default, the role targets the Open Source (OSS) version, but it can be easily reconfigured through the teleport_edition variable.
Sources: README.md:105-109, defaults/main.yml:8
Supported Edition Types
The role explicitly supports three primary editions of Teleport. The desired edition is controlled via the teleport_edition variable in the role defaults.
| Edition | Value | Description |
|---|---|---|
| Open Source | oss | The community edition of Teleport. This is the default setting. |
| Enterprise | enterprise | The self-hosted Enterprise edition, typically requiring a license. |
| Cloud | cloud | The managed Teleport Cloud edition. |
Sources: README.md:105-109, defaults/main.yml:8
Edition-Based Installation Logic
The choice of edition is passed as an environment variable to the Teleport installation script. This script is retrieved from the configured proxy server and executed on the target node.
Installation Flow
The following diagram illustrates how the teleport_edition variable flows through the installation task to the target system.
The installation process relies on a shell script downloaded dynamically from the proxy server. The TELEPORT_EDITION environment variable ensures the correct package or binary is provisioned.
Sources: tasks/main.yml:18-34
Automated Versioning and Editions
While the edition defines the feature set and licensing, the version is handled through detection or static assignment. If teleport_autodetect_version is enabled, the role queries the Teleport API to find the appropriate version for the configured channel.
The detected version is then used alongside the selected edition during the execution of the install script.
Sources: tasks/preflight/version.yml:4-10, tasks/main.yml:26-30
Configuration Requirements
Regardless of the edition chosen, certain mandatory variables must be defined to ensure the node can successfully join the cluster.
- Proxy Server:
teleport_proxy_servermust be defined to download the installation script and for node registration. - Cluster Name:
teleport_cluster_nameidentifies the target cluster. - Auth Token: Used for the initial handshake between the node and the Auth server.
Sources: tasks/preflight/check.yml:5-10, README.md:36-41
Implementation Snippet
The following snippet shows how the edition is utilized within the tasks/main.yml file during the installation phase:
- name: Install Teleport using install script
ansible.builtin.shell: |
set -o pipefail
sudo /tmp/install.sh
environment:
TELEPORT_VERSION: "{{ teleport_version }}"
TELEPORT_EDITION: "{{ teleport_edition | default('oss') }}"
become: true
args:
creates: "/usr/local/bin/teleport"
executable: /bin/bash
Sources: tasks/main.yml:26-34
Summary
The ansible-teleport role provides a unified interface for managing oss, enterprise, and cloud editions of Teleport. By leveraging the official Teleport installation script and passing the edition type as an environment variable, the role ensures that the correct software package is installed while maintaining consistent configuration management across different licensing tiers.