mdsketch.teleport

Rôle Ansible : Service de nœud Teleport

Ansible Galaxy Ansible Lint molecule_tests

Un rôle Ansible pour installer ou mettre à jour le service de nœud Teleport et la configuration de Teleport sur des systèmes basés sur Debian.

Fonctionne avec n'importe quelle architecture pour laquelle Teleport a un binaire, voir les téléchargements disponibles.

Si vous ajoutez votre propre modèle de fichier de configuration Teleport, vous pouvez faire fonctionner n'importe quel service de nœud que vous souhaitez (ssh, application, base de données, kubernetes).

Veuillez consulter la documentation du fichier de configuration Teleport pour plus d'informations et vérifier qu'il est correctement configuré.

À FAIRE :

  • ajouter des tests d'idempotence pour vérifier que Teleport est mis à jour correctement (configuration, service et binaire)
  • ajouter des tests pour le templating des variables
  • verrouiller les versions des outils de vérification
  • examiner si l'installation de Teleport dans un conteneur Docker est utile (actuellement non supporté)

Exigences

Un cluster Teleport fonctionnel pour que vous puissiez fournir les informations suivantes :

  • jeton d'authentification (dynamique ou statique). Ex : tctl nodes add --ttl=5m --roles=node | grep "invite token:" | grep -Eo "[0-9a-z]{32}"
  • CA pin
  • adresse du serveur d'authentification

Variables du rôle

Voici les variables par défaut avec leurs valeurs par défaut telles que définies dans defaults/main.yml

teleport_version

La version de Teleport à installer. Consultez les téléchargements de Teleport pour les versions disponibles.

teleport_architecture

Changez teleport_architecture en l'une des options suivantes :

  • arm-bin si vous utilisez des appareils basés sur ARMv7 (32 bits).
  • arm64-bin si vous utilisez des appareils basés sur ARM64/ARMv8 (64 bits).
  • amd64-bin si vous utilisez des appareils basés sur x86_64/AMD64.
  • 386-bin si vous utilisez des appareils basés sur i386/Intel.
teleport_config_template

Le modèle à utiliser pour le fichier de configuration Teleport. La valeur par défaut est templates/default_teleport.yaml.j2. Il contient une configuration basique qui activera le service SSH et ajoutera une étiquette de commande montrant le temps de fonctionnement du nœud.

Il existe de nombreuses options disponibles et vous pouvez remplacer par votre propre modèle et ajouter les variables que vous souhaitez.

teleport_service_template

Le modèle à utiliser pour le fichier de service Teleport. La valeur par défaut est templates/default_teleport.service.j2. Vous pouvez substituer votre propre modèle et ajouter les variables que vous souhaitez.

teleport_ca_pin

Le CA pin à utiliser pour la configuration de Teleport. Ceci est optionnel, mais recommandé.

teleport_config_path

Le chemin vers le fichier de configuration de Teleport. La valeur par défaut est /etc/teleport.yaml.

teleport_auth_servers

La liste des serveurs d'authentification à utiliser pour la configuration de Teleport. Des exemples sont montrés comme valeurs par défaut ci-dessus.

backup_teleport_config

Effectue une sauvegarde du fichier de configuration de Teleport avant de l'écraser. La valeur par défaut est oui. Consultez Mise à jour de Teleport pour plus d'informations.

teleport_control_systemd

Par défaut oui. Contrôle si ce rôle modifie le service Teleport.

teleport_template_config

Par défaut oui. Contrôle si ce rôle modifie le fichier de configuration de Teleport.

Mise à jour de Teleport

Lorsque le rôle est exécuté, il vérifie si la version installée correspond à la version spécifiée dans teleport_version. Si elle est différente, il téléchargera la dernière version et l'installera.

Lors d'une mise à jour, une sauvegarde de l'actuel fichier de configuration situé dans teleport_config_path sera créée et un nouveau fichier de configuration sera créé à sa place. Lors de cette opération, un teleport_auth_token et un teleport_ca_pin n'ont pas besoin d'être fournis, car ils sont extraits de l'ancien fichier de configuration et ensuite intégrés dans le nouveau fichier de configuration.

Cela vous permet de mettre à jour des valeurs dans le fichier de configuration, comme des étiquettes et des commandes, sans avoir à stocker le jeton d'authentification et le CA pin.

Ce rôle recharge teleport.service après l'une des actions suivantes :

  • Teleport est installé ou mis à jour
  • Le fichier de configuration Teleport est mis à jour
  • Le fichier de service Teleport est mis à jour

Dépendances

Aucune

Exemple de Playbook

Par exemple, pour installer Teleport sur un nœud :

- hosts: all
  roles:
    - mdsketch.teleport
  vars:
    # étiquettes ssh optionnelles
    teleport_ssh_labels:
      - k: "label_key"
        v: "label_value"
    teleport_auth_token: "super secret auth token"
    teleport_ca_pin: "not as secret ca pin"
    teleport_auth_server: "serveur d'authentification"
    teleport_proxy_server: "serveur proxy"

Configuration Teleport créée dans /etc/teleport.yaml

---
version: v3
teleport:
  auth_token: "super secret auth token"
  ca_pin: "not as secret ca pin"
  auth_server: serveur d'authentification
  proxy_server: serveur proxy
  log:
    output: stderr
    severity: INFO
    format:
      output: text
  diag_addr: ""
ssh_service:
  enabled: "oui"
  labels:
    label_key: label_value
  commands:
  - name: hostname
    command: [hostname]
    period: 60m0s
  - name: uptime
    command: [uptime, -p]
    period: 5m0s
  - name: version
    command: [teleport, version]
    period: 60m0s
proxy_service:
  enabled: "non"
  https_keypairs: []
  https_keypairs_reload_interval: 0s
  acme: {}
auth_service:
  enabled: "non"

Licence

MIT / BSD

Informations sur l'auteur

Ce rôle a été créé en 2021 par Matthew Draws pour KPM Power

Mainteneurs

À propos du projet

An ansible role to install or update the teleport node service and teleport config on Debian based systems.

Installer
ansible-galaxy install mdsketch.teleport
Licence
mit
Téléchargements
19.6k
Propriétaire