jamdoog.teleport
Rôle Ansible : Teleport
Ce rôle déploiera Teleport sur un serveur donné.
Ce que cela fait :
Vous pouvez configurer quelles parties d'un déploiement Teleport vous souhaitez avec des variables.
- Installer Teleport via DEB/RPM avec vérification GPG
- Installer Teleport à partir d'une archive tar avec vérification GPG (systèmes sans apt/rpm)
- S'enregistrer automatiquement en tant que nœud pour SSH
- Déployer automatiquement les "commandes"/étiquettes pour SSH et des applications telles que Kernel, Teleport et plus encore
- Générer automatiquement un jeton d'invitation
Exigences
Un système fonctionnant avec systemd Cela a seulement été testé sur :
Debian 10/11 RHEL 7/8/9 openSUSE 15.0/1/2/3/Tumbleweed
Comment fonctionne la génération de jeton :
- Générer un jeton avec la commande tctl au format JSON
- Extraire le jeton
- Mettre à jour la variable "INVITE_TOKEN"
Comment utiliser la fonction de génération de jeton :
- Remplissez les variables suivantes :
GENERATE_TOKEN: true # Nécessaire pour commencer la génération du jeton GENERATE_TOKEN_COMBO: true # Si vous souhaitez générer à la fois un jeton d'application et un jeton de nœud. Ne pas utiliser cela en combinaison avec les variables ci-dessous "GENERATE_TOKEN_<....>_ONLY". GENERATE_TOKEN_SSH_ONLY: false # Si vous souhaitez uniquement générer un jeton de nœud GENERATE_TOKEN_APP_ONLY: false # Si vous souhaitez uniquement générer un jeton d'application TELEPORT_TOKEN_HOST: "Jump" # L'hôte (via SSH) sur lequel tctl sera exécuté TOKEN_TTL: "2m" # TTL (Durée de vie) du jeton.
Variables de rôle
Group Vars :
Nom | Type | Exemple |
---|---|---|
INVITE_TOKEN | chaîne | 4f622402dawdawdaw |
CA_PIN | chaîne | sha256:2awdwadwad678767awd768awdd |
TELEPORT_HOST | chaîne | teleport.domain.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 | chaîne | "Jump" |
TOKEN_TTL | chaîne | "10m" |
Host Vars :
Nom | Type | Exemple |
---|---|---|
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 | chaîne | proxmox |
TELEPORT_APPLICATION_IGNORE_TLS | chaîne | true |
TELEPORT_APPLICATION_URI | chaîne | https://192.168.200.1:8006 |
Dépendances
Il n'y a pas de dépendances pour ce rôle.
Exemple de Playbook
PLAYBOOK (JETON NON GÉNÉRÉ) :
- 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"
PLAYBOOK (JETON GÉNÉRÉ) :
- 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"
Licence
BSD
Informations sur l'auteur
Ce rôle a été créé par James Ledger, j'écris sur des sujets sur https://jamesledger.net