jamdoog.teleport
Rol de Ansible: Teleport
Este rol desplegará Teleport en un servidor dado.
Qué hace esto:
Puedes configurar qué partes de un despliegue de teleport deseas con variables.
- Instalar teleport a través de DEB/RPM con verificación GPG.
- Instalar teleport desde un archivo tarball con verificación GPG (sistemas sin apt/rpm).
- Inscribirse automáticamente como un nodo para SSH.
- Desplegar automáticamente "comandos"/etiquetas para SSH y aplicaciones como Kernel, Teleport y más versiones.
- Generar automáticamente un token de invitación.
Requisitos
Un sistema que utilice systemd. Esto solo se ha probado en:
Debian 10/11 RHEL 7/8/9 openSUSE 15.0/1/2/3/Tumbleweed
Cómo funciona la generación de tokens:
- Genera un token con el comando tctl en formato JSON.
- Extrae el token.
- Actualiza la variable "INVITE_TOKEN".
Cómo usar la función de generación de tokens:
- Completa las siguientes variables:
GENERATE_TOKEN: true # Requerido para que comience la generación del token. GENERATE_TOKEN_COMBO: true # Si deseas generar un token tanto para la aplicación como para el nodo. No uses esto en combinación con las variables "GENERATE_TOKEN_<....>_ONLY" a continuación. GENERATE_TOKEN_SSH_ONLY: false # Si solo deseas generar un token de nodo. GENERATE_TOKEN_APP_ONLY: false # Si solo deseas generar un token de aplicación. TELEPORT_TOKEN_HOST: "Jump" # El host (a través de SSH) donde se ejecutará tctl. TOKEN_TTL: "2m" # TTL (Tiempo de vida) del token.
Variables del rol
Variables de grupo:
| Nombre | Tipo | Ejemplo |
|---|---|---|
| INVITE_TOKEN | cadena | 4f622402dawdawdaw |
| CA_PIN | cadena | sha256:2awdwadwad678767awd768awdd |
| TELEPORT_HOST | cadena | teleport.dominio.tld:443 |
| TELEPORT_MAJOR_VERSION | INT | 10 |
| TELEPORT_MINOR_VERSION | FLOAT | 3.5 |
| GENERATE_TOKEN | bool | true |
| GENERATE_TOKEN_COMBO | bool | true |
| GENERATE_TOKEN_SSH_ONLY | bool | false |
| GENERATE_TOKEN_APP_ONLY | bool | false |
| TELEPORT_TOKEN_HOST | cadena | "Jump" |
| TOKEN_TTL | cadena | "10m" |
Variables de host:
| Nombre | Tipo | Ejemplo |
|---|---|---|
| SSH_SERVICE | bool | true |
| APP_SERVICE | bool | true |
| CREATE_SSH_COMMANDS | bool | true |
| CREATE_APP_COMMANDS | bool | true |
| CREATE_COMMAND | bool | true |
| CREATE_OS_COMMAND | bool | true |
| CREATE_KERNEL_COMMAND | bool | true |
| CREATE_TELEPORT_COMMAND | bool | true |
| CREATE_HOSTNAME_COMMAND | bool | true |
| CREATE_VIRTUALIZATION_COMMAND | bool | true |
| TELEPORT_APPLICATION_NAME | cadena | proxmox |
| TELEPORT_APPLICATION_IGNORE_TLS | cadena | true |
| TELEPORT_APPLICATION_URI | cadena | https://192.168.200.1:8006 |
Dependencias
No hay dependencias para este rol.
Ejemplo de Playbook
PLAYBOOK (TOKEN NO GENERADO):
- hosts: teleport
become: true
roles:
- jamdoog.teleport
vars:
- INVITE_TOKEN: 4f622402dawdawdaw
- CA_PIN: sha256:2awdwadwad678767awd768awdd
- TELEPORT_HOST: dominio.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"
PLAYBOOK (TOKEN GENERADO):
- 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: dominio.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"
Licencia
BSD
Información del autor
Este rol fue creado por James Ledger, escribo sobre cosas en https://jamesledger.net.
A ansible role to automatically deploy a node as a teleport instance
ansible-galaxy install jamdoog.teleport