mdsketch.teleport
Rôle Ansible : Service de nœud Teleport
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
- Matthew Draws : mdsketch
An ansible role to install or update the teleport node service and teleport config on Debian based systems.
ansible-galaxy install mdsketch.teleport