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 上撰写内容。

关于项目

A ansible role to automatically deploy a node as a teleport instance

安装
ansible-galaxy install jamdoog.teleport
许可证
bsd-3-clause
下载
1.2k
拥有者