jamdoog.teleport
Ansible 角色: Teleport
这个角色将在指定服务器上部署 Teleport。
功能说明:
您可以通过变量配置想要的 Teleport 部署部分。
- 通过 DEB/RPM 并进行 GPG 检查安装 Teleport
- 通过 tarball 并进行 GPG 检查安装 Teleport(用于非 apt/rpm 系统)
- 自动注册为 SSH 节点
- 自动部署 SSH 和应用程序的“命令”/标签,如内核、Teleport 等版本控制
- 自动生成邀请令牌
要求
需要一个运行 systemd 的系统。 此角色仅在以下系统上经过测试:
Debian 10/11 RHEL 7/8/9 openSUSE 15.0/1/2/3/Tumbleweed
令牌生成工作原理:
- 使用 tctl 命令生成 JSON 格式的令牌
- 提取令牌
- 更新 "INVITE_TOKEN" 变量
如何使用令牌生成功能:
- 填写以下变量:
GENERATE_TOKEN: true # 开始生成令牌所需 GENERATE_TOKEN_COMBO: true # 如果您想同时生成应用和节点令牌。不要与下面的 "GENERATE_TOKEN_<....>_ONLY" 变量一起使用。 GENERATE_TOKEN_SSH_ONLY: false # 如果您只想生成节点令牌 GENERATE_TOKEN_APP_ONLY: false # 如果您只想生成应用令牌 TELEPORT_TOKEN_HOST: "Jump" # tctl 运行的主机(通过 SSH) TOKEN_TTL: "2m" # 令牌的 TTL(生存时间)
角色变量
组变量:
名称 | 类型 | 示例 |
---|---|---|
INVITE_TOKEN | 字符串 | 4f622402dawdawdaw |
CA_PIN | 字符串 | sha256:2awdwadwad678767awd768awdd |
TELEPORT_HOST | 字符串 | teleport.domain.tld:443 |
TELEPORT_MAJOR_VERSION | 整数 | 10 |
TELEPORT_MINOR_VERSION | 浮点 | 3.5 |
GENERATE_TOKEN | 布尔 | true |
GENERATE_TOKEN_COMBO | 布尔 | true |
GENERATE_TOKEN_SSH_ONLY | 布尔 | false |
GENERATE_TOKEN_APP_ONLY | 布尔 | false |
TELEPORT_TOKEN_HOST | 字符串 | "Jump" |
TOKEN_TTL | 字符串 | "10m" |
主机变量:
名称 | 类型 | 示例 |
---|---|---|
SSH_SERVICE | 布尔 | true |
APP_SERVICE | 布尔 | true |
CREATE_SSH_COMMANDS | 布尔 | true |
CREATE_APP_COMMANDS | 布尔 | true |
CREATE_COMMAND | 布尔 | true |
CREATE_OS_COMMAND | 布尔 | true |
CREATE_KERNEL_COMMAND | 布尔 | true |
CREATE_TELEPORT_COMMAND | 布尔 | true |
CREATE_HOSTNAME_COMMAND | 布尔 | true |
CREATE_VIRTUALIZATION_COMMAND | 布尔 | true |
TELEPORT_APPLICATION_NAME | 字符串 | proxmox |
TELEPORT_APPLICATION_IGNORE_TLS | 字符串 | true |
TELEPORT_APPLICATION_URI | 字符串 | https://192.168.200.1:8006 |
依赖关系
此角色没有依赖关系。
示例剧本
剧本(未生成令牌):
- hosts: teleport
become: true
roles:
- jamdoog.teleport
vars:
- INVITE_TOKEN: 4f622402dawdawdaw
- CA_PIN: sha256:2awdwadwad678767awd768awdd
- TELEPORT_HOST: domain.tld:443
- TELEPORT_MINOR_VERSION: 3.2
- TELEPORT_MAJOR_VERSION: 10
- SSH_SERVICE: true
- APP_SERVICE: true
- CREATE_COMMANDS: true
- CREATE_HOSTNAME_COMMAND: true
- CREATE_OS_COMMAND: true
- CREATE_KERNEL_COMMAND: true
- CREATE_TELEPORT_COMMAND: true
- CREATE_VIRTUALIZATION_COMMAND: true
- TELEPORT_APPLICATION_NAME: "proxmox"
- TELEPORT_APPLICATION_IGNORE_TLS: true
- TELEPORT_APPLICATION_URI: "https://192.168.200.1:8006"
剧本(生成令牌):
- hosts: teleport
become: true
roles:
- jamdoog.teleport
vars:
- GENERATE_TOKEN: true
- GENERATE_TOKEN_COMBO: true
- GENERATE_TOKEN_SSH_ONLY: false
- GENERATE_TOKEN_APP_ONLY: false
- TELEPORT_TOKEN_HOST: "Jump"
- TOKEN_TTL: "2m"
- CA_PIN: sha256:2awdwadwad678767awd768awdd
- TELEPORT_HOST: domain.tld:443
- TELEPORT_MINOR_VERSION: 3.2
- TELEPORT_MAJOR_VERSION: 10
- SSH_SERVICE: true
- APP_SERVICE: true
- CREATE_COMMANDS: true
- CREATE_HOSTNAME_COMMAND: true
- CREATE_OS_COMMAND: true
- CREATE_KERNEL_COMMAND: true
- CREATE_TELEPORT_COMMAND: true
- CREATE_VIRTUALIZATION_COMMAND: true
- TELEPORT_APPLICATION_NAME: "proxmox"
- TELEPORT_APPLICATION_IGNORE_TLS: true
- TELEPORT_APPLICATION_URI: "https://192.168.200.1:8006"
许可证
BSD
作者信息
该角色由 James Ledger 创建,我在 https://jamesledger.net 上撰写内容。