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
Лицензия
bsd-3-clause
Загрузки
631
Владелец