teleport
Ansible Роль: Teleport
Эта роль развернет Teleport на указанном сервере.
Что это делает:
Вы можете настроить, какие части развертывания Teleport вы хотите, с помощью переменных.
- Установить Teleport через DEB/RPM с проверкой GPG
- Установить Teleport из tarball с проверкой GPG (для систем без apt/rpm)
- Автоматически зарегистрироваться как узел для SSH
- Автоматически развернуть "команды"/метки для SSH и приложений, таких как версия Kernel, 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" # Хост (по SSH), на котором будет выполняться tctl TOKEN_TTL: "2m" # TTL (время жизни) токена.
Переменные роли
Групповые переменные:
Имя | Тип | Пример |
---|---|---|
INVITE_TOKEN | строка | 4f622402dawdawdaw |
CA_PIN | строка | sha256:2awdwadwad678767awd768awdd |
TELEPORT_HOST | строка | teleport.domain.tld:443 |
TELEPORT_MAJOR_VERSION | INT | 10 |
TELEPORT_MINOR_VERSION | FLOAT | 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
Информация об авторе
Эта роль была создана Джеймсом Леджером, я пишу о разных вещах на https://jamesledger.net
A ansible role to automatically deploy a node as a teleport instance
ansible-galaxy install Jamdoog/ansible-teleport