enix.teleport
enix.teleport
This is a role for deploying and setting up teleport and its extensions on Unix systems using Ansible.
Warning: This Ansible Role is no longer maintained and is now read-only. Thank you.
Requirements
Supported systems:
- Ubuntu versions: 18.04 "Bionic", 20.04 "Focal", 22.04 "Jammy"
- Debian versions: 7 "Wheezy", 8 "Jessie", 9 "Stretch", 10 "Buster", 11 "Bullseye", 12 "Bookworm"
Role Variables
This role comes with many default settings that can be changed in your hosts/group variables, inventory, or playbook. You can find more about these defaults in defaults/main.yml. All variables start with teleport__.
teleport__version: 10- The version of the binary to install. Default is version 8. Available versions: 8, 9, 10, 11.teleport__agent: false- Set to true to configure and enable the teleport agent.teleport__bind_addr: 0.0.0.0- Default address for binding other configurations.teleport__nodename- The name reported by the teleport agent to its connected proxy. If not set, it will use the machine's hostname.teleport__diag: false- Set to true to enable the HTTP monitoring endpoint.teleport__diag_addr: "127.0.0.1"- Address for the HTTP monitoring endpoint.teleport__diag_port: 3000- Port for the HTTP monitoring endpoint.teleport__node: false- Set to true to enable the teleport node role.teleport__node_token: ""- Token used to connect to the proxy.teleport__node_server: ""- URL of the proxy server.teleport__proxy: false- Set to true to enable proxy mode in teleport.teleport__proxy_public_addr: ""- Public address exposed by the proxy.teleport__proxy_acme: false- Enable ACME protocol for public certificates.teleport__proxy_acme_email: ""- Email for ACME requests.teleport__auth: false- Set to true to enable teleport authentication.teleport__auth_cluster_name: ""- Name of the teleport authentication cluster.teleport__auth_u2f: false- Enable U2F (older configuration).teleport__auth_addr: {{ teleport__bind_addr }}- Address for the teleport authentication service.teleport__auth_port: 3025- Port for the teleport authentication service.teleport__ssh_addr: {{ teleport__bind_addr }}- Address for the SSH teleport service.teleport__ssh_port: 3022- Port for the SSH teleport service.teleport__ssh: false- Set to true to enable the teleport SSH module.teleport__ssh_labels: ''- Add labels to the SSH module (YAML format).teleport__ssh_pam_enabled: true- Enable PAM authentication.teleport__ssh_pam_service: 'sshd'- Name of the PAM service.teleport__app: false- Set to true to enable the teleport application module.teleport_applications: []- List of applications with keys:name: Application nameuri: URI to reverse-proxyskip_verify: false: Whether to skip certificate verification.
teleport__web_addr: {{ teleport__bind_addr }}- Address for the web teleport service.teleport__web_port: 443- Port for the web teleport service.teleport__tunnel_addr: {{ teleport__bind_addr }}- Address for the tunnel service.teleport__tunnel_port: 3024- Port for the tunnel teleport service.teleport__binary_compat: false- If true, deploy a compatible binary version alongside the package.teleport__install_repo: true- Set to false to skip repo installation (useful for air-gapped environments).
Dependencies
- None
Usage
To use, add to Ansible Galaxy requirements.yml:
# teleport from enix
# private role
- src: git+ssh://[email protected]/ansible/ansible-teleport.git
name: enix.teleport
And include it in your playbook:
# Node example
- hosts: all
roles:
- role enix.teleport:
teleport__agent: true
teleport__version: 9
teleport__nodename: "test.node"
teleport__node: true
teleport__node_token: "gjlksfdjglkfsdjlkgfds9423"
teleport__node_server: "https://toto.tp.com:3025"
teleport__ssh: true
teleport__ssh_labels:
tenant: toto.com
# Proxy example
- hosts: all
roles:
- role enix.teleport:
teleport__agent: true
teleport__version: 10
teleport__nodename: "toto.proxy"
teleport__proxy: true
teleport__proxy_public_addr: "toto.tp.com"
teleport__proxy_acme: false
teleport__proxy_acme_email: "[email protected]"
teleport__auth: true
teleport__auth_cluster_name: "toto.tp.com"
teleport__ssh: true
teleport__ssh_labels:
tenant: toto.com
Changelog
1.9.1
- Added support for PAM
1.9.0
- Fixed package UnHold issue
- Set default version to 10
- Added
moleculetests
1.8.2
- Supported VyOS
- Allowed overwriting
ansible_distributionin APT repo URL
1.8.1
- Added
configAnsible tag
1.8.0
- Made
nodenameoptional (defaults to hostname)
1.7.1
- Fixed error message for non-debian-like targets
- Used new package signature check method when applicable
1.7.0
- Added support for old-style U2F configuration
1.6.1
- Fixed duplicate diagnostic config
1.6.0
- Added support for diagnostic HTTP endpoint
1.5.2
- Fixed YAML linting error
1.5.1
- Cosmetic change in teleport.yaml template
1.5.0
- Supported app service
1.4.0
- Supported external LE certificates (with ACME disabled)
1.3.1
- Fixed missing trailing slash in legacy debian repository
1.3.0
- Added teleport upgrade support (waiting for connection)
- Removed legacy apt repository
- Automatically upgraded teleport package if newer version is available
1.2.0
- Added proxy bind address support
1.1.0
- Fallback to teleport debian repository for major versions.
1.0.0
- Used Enix debian repository by default
0.9.2
- Updated compatible binary to version 8.3.8
0.9.1
- Added CentOS 6 binary compatibility (Debian 8 Jessie)
0.9.0
- Initial version.
License
GPLv2
Author Information
Laurent Corbes laurent.corbes@enix.fr - Enix
