mdsketch.teleport

Ansible Rolle: Teleport Node Dienst

Ansible Galaxy Ansible Lint molecule_tests

Eine Ansible Rolle, um den Teleport Node Dienst und die Teleport-Konfiguration auf Debian-basierten Systemen zu installieren oder zu aktualisieren.

Funktioniert mit jeder Architektur, für die Teleport eine Binärdatei hat. Siehe verfügbare Teleport-Downloads.

Wenn Sie Ihre eigene Vorlage für die Teleport-Konfigurationsdatei hinzufügen, können Sie beliebige Node-Dienste wie (SSH, App, Datenbank, Kubernetes) betreiben.

Bitte überprüfen Sie die Teleport-Konfigurationsdatei Dokumentation für weitere Informationen und bestätigen Sie, dass sie korrekt eingerichtet ist.

TODO:

  • Fügen Sie Idempotenztests hinzu, um zu überprüfen, ob Teleport korrekt aktualisiert wird (Konfiguration, Dienst und Binärdatei).
  • Tests für die Variablen-Templatisierung hinzufügen.
  • Versionen der Linting-Tools festlegen.
  • Untersuchen, ob die Installation von Teleport in einem Docker-Container nützlich ist (derzeit nicht unterstützt).

Anforderungen

Ein laufender Teleport-Cluster, damit Sie die folgenden Informationen bereitstellen können:

  • Auth-Token (dynamisch oder statisch). Beispiel: tctl nodes add --ttl=5m --roles=node | grep "invite token:" | grep -Eo "[0-9a-z]{32}"
  • CA-Pin
  • Adresse des Authentifizierungsservers

Rollenvariablen

Dies sind die Standardvariablen mit ihren Standardwerten, wie in defaults/main.yml definiert:

teleport_version

Die Version von Teleport, die installiert werden soll. Siehe Teleport-Downloads für verfügbare Versionen.

teleport_architecture

Ändern Sie teleport_architecture zu einer der folgenden:

  • arm-bin, wenn Sie auf ARMv7 (32-Bit) basierten Geräten arbeiten.
  • arm64-bin, wenn Sie auf ARM64/ARMv8 (64-Bit) basierten Geräten arbeiten.
  • amd64-bin, wenn Sie auf x86_64/AMD64 basierten Geräten arbeiten.
  • 386-bin, wenn Sie auf i386/Intel basierten Geräten arbeiten.
teleport_config_template

Die Vorlage, die für die Teleport-Konfigurationsdatei verwendet werden soll. Der Standardwert ist templates/default_teleport.yaml.j2. Sie enthält eine grundlegende Konfiguration, die den SSH-Dienst aktiviert und ein Kommandoetikett zur Anzeige der Node-Uptime hinzufügt.

Es gibt viele verfügbare Optionen und Sie können Ihre eigene Vorlage verwenden und beliebige Variablen hinzufügen.

teleport_service_template

Die Vorlage, die für die Teleport-Dienstdatei verwendet werden soll. Der Standardwert ist templates/default_teleport.service.j2. Sie können Ihre eigene Vorlage verwenden und beliebige Variablen hinzufügen.

teleport_ca_pin

Der CA-Pin, der für die Teleport-Konfiguration verwendet werden soll. Dies ist optional, aber empfohlen.

teleport_config_path

Der Pfad zur Teleport-Konfigurationsdatei. Der Standardwert ist /etc/teleport.yaml.

teleport_auth_servers

Die Liste der Authentifizierungsserver, die für die Teleport-Konfiguration verwendet werden sollen. Beispiele sind oben als Standardwerte angezeigt.

backup_teleport_config

Führt ein Backup der Teleport-Konfigurationsdatei durch, bevor sie überschrieben wird. Der Standardwert ist ja. Siehe Teleport aktualisieren für weitere Informationen.

teleport_control_systemd

Standard ist ja. Steuert, ob diese Rolle den Teleport-Dienst ändert.

teleport_template_config

Standard ist ja. Steuert, ob diese Rolle die Teleport-Konfigurationsdatei ändert.

Teleport aktualisieren

Wenn die Rolle ausgeführt wird, prüft sie, ob die installierte Version mit der in teleport_version angegebenen Version übereinstimmt. Wenn nicht, wird die neueste Version heruntergeladen und installiert.

Bei einem Upgrade wird ein Backup der aktuellen Konfigurationsdatei im teleport_config_path erstellt und eine neue Konfigurationsdatei an ihrer Stelle templatisiert. Bei dieser Vorgehensweise müssen kein teleport_auth_token und teleport_ca_pin bereitgestellt werden, da sie aus der vorhandenen Konfigurationsdatei übernommen und dann in die neue Konfigurationsdatei eingefügt werden.

Dies ermöglicht es Ihnen, Werte in der Konfigurationsdatei wie Labels und Befehle zu aktualisieren, ohne das Auth-Token und den CA-Pin speichern zu müssen.

Diese Rolle lädt teleport.service neu, nachdem eines der folgenden Ereignisse stattgefunden hat:

  • Teleport wurde installiert oder aktualisiert
  • Die Teleport-Konfigurationsdatei wurde aktualisiert
  • Die Teleport-Dienstdatei wurde aktualisiert

Abhängigkeiten

Keine

Beispiel-Playbook

Zum Beispiel, um Teleport auf einem Node zu installieren:

- hosts: all
  roles:
    - mdsketch.teleport
  vars:
    # optionale SSH-Labels
    teleport_ssh_labels:
      - k: "label_key"
        v: "label_value"
    teleport_auth_token: "super geheim auth token"
    teleport_ca_pin: "nicht so geheimer ca pin"
    teleport_auth_server: "auth server"
    teleport_proxy_server: "proxy server"

Erstellte Teleport-Konfiguration in /etc/teleport.yaml

---
version: v3
teleport:
  auth_token: "super geheim auth token"
  ca_pin: "nicht so geheimer ca pin"
  auth_server: auth server
  proxy_server: proxy server
  log:
    output: stderr
    severity: INFO
    format:
      output: text
  diag_addr: ""
ssh_service:
  enabled: "ja"
  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: "nein"
  https_keypairs: []
  https_keypairs_reload_interval: 0s
  acme: {}
auth_service:
  enabled: "nein"

Lizenz

MIT / BSD

Autoreninformationen

Diese Rolle wurde 2021 von Matthew Draws für KPM Power erstellt.

Betreuer

Über das Projekt

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

Installieren
ansible-galaxy install mdsketch.teleport
Lizenz
mit
Downloads
19.6k
Besitzer