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

À propos du projet

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

Installer
ansible-galaxy install jamdoog.teleport
Licence
bsd-3-clause
Téléchargements
1.2k
Propriétaire