mdsketch.teleport

Rola Ansible: Usługa Węzła Teleport

Ansible Galaxy Ansible Lint molecule_tests

Rola Ansible do instalacji lub aktualizacji usługi węzła teleport oraz konfiguracji teleport na systemach opartych na Debianie.

Działa z każdą architekturą, dla której dostępny jest plik binarny teleport, zobacz dostępne pobrania teleportu.

Jeśli dodasz własny szablon pliku konfiguracyjnego teleport, możesz uruchomić dowolne usługi węzła, które chcesz (ssh, aplikacja, baza danych, kubernetes).

Proszę sprawdzić dokumentację pliku konfiguracyjnego teleportu dokumentację dla uzyskania dodatkowych informacji i potwierdzenia, że jest poprawnie skonfigurowany.

DO ZROBIENIA:

  • dodać testy idempotencji, aby zweryfikować, czy teleport jest poprawnie aktualizowany (konfiguracja, usługa i binarka)
  • dodać testy dla szablonów zmiennych
  • zablokować wersje narzędzi lintera
  • zbadać, czy instalacja teleport w kontenerze dockerowym jest przydatna (obecnie nieobsługiwane)

Wymagania

Działająca klaster teleport, abyś mógł podać następujące informacje:

  • token autoryzacyjny (dynamiczny lub statyczny). Przykład: tctl nodes add --ttl=5m --roles=node | grep "invite token:" | grep -Eo "[0-9a-z]{32}"
  • CA pin
  • adres serwera autoryzacji

Zmienne Roli

To są domyślne zmienne z ich wartościami domyślnymi, jak zdefiniowano w defaults/main.yml

teleport_version

Wersja teleportu do zainstalowania. Zobacz dostępne wersje w pobraniach teleportu.

teleport_architecture

Zmień teleport_architecture na jedną z poniższych:

  • arm-bin, jeśli używasz urządzeń opartych na ARMv7 (32-bitowych).
  • arm64-bin, jeśli używasz urządzeń opartych na ARM64/ARMv8 (64-bitowych).
  • amd64-bin, jeśli używasz urządzeń opartych na x86_64/AMD64.
  • 386-bin, jeśli używasz urządzeń opartych na i386/Intel.
teleport_config_template

Szablon do użycia dla pliku konfiguracyjnego teleport. Domyślnie jest to templates/default_teleport.yaml.j2. Zawiera podstawową konfigurację, która włączy usługę SSH i doda etykietę polecenia pokazującą czas działania węzła.

Dostępnych jest wiele opcji i możesz wstawić własny szablon oraz dodać dowolne zmienne, które chcesz.

teleport_service_template

Szablon do użycia dla pliku usługi teleport. Domyślnie jest to templates/default_teleport.service.j2. Możesz wstawić własny szablon oraz dodać dowolne zmienne, które chcesz.

teleport_ca_pin

CA pin do użycia w konfiguracji teleport. Jest to opcjonalne, ale zalecane.

teleport_config_path

Ścieżka do pliku konfiguracyjnego teleport. Domyślnie to /etc/teleport.yaml.

teleport_auth_servers

Lista serwerów autoryzacyjnych do użycia w konfiguracji teleport. Przykłady są pokazane jako domyślne powyżej.

backup_teleport_config

Wykonuje kopię zapasową pliku konfiguracyjnego teleport przed jego nadpisaniem. Domyślnie jest tak. Zobacz Aktualizacja teleportu dla więcej informacji.

teleport_control_systemd

Domyślnie tak. Kontroluje, czy ta rola modyfikuje usługę teleport.

teleport_template_config

Domyślnie tak. Kontroluje, czy ta rola modyfikuje plik konfiguracyjny teleport.

Aktualizacja Teleportu

Kiedy rola jest uruchamiana, sprawdza, czy zainstalowana wersja zgadza się z wersją określoną w teleport_version. Jeśli jest inna, to pobierze najnowszą wersję i ją zainstaluje.

Podczas aktualizacji tworzona jest kopia zapasowa bieżącego pliku konfiguracyjnego w teleport_config_path, a nowy plik konfiguracyjny jest tworzony na jego miejscu. Przy tym nie trzeba podawać teleport_auth_token i teleport_ca_pin, ponieważ są one pobierane z istniejącego pliku konfiguracyjnego i następnie wstawiane do nowego pliku konfiguracyjnego.

Umożliwia to aktualizację wartości w pliku konfiguracyjnym, takich jak etykiety i polecenia, bez konieczności przechowywania tokenu autoryzacyjnego i CA pin.

Ta rola przeładowuje teleport.service po wystąpieniu któregokolwiek z następujących zdarzeń:

  • Teleport jest zainstalowany lub zaktualizowany
  • Plik konfiguracyjny teleport jest zaktualizowany
  • Plik usługi teleport jest zaktualizowany

Zależności

Brak

Przykładowy Playbook

Na przykład, aby zainstalować teleport na węźle:

- hosts: all
  roles:
    - mdsketch.teleport
  vars:
    # opcjonalne etykiety ssh
    teleport_ssh_labels:
      - k: "label_key"
        v: "label_value"
    teleport_auth_token: "super sekretny token autoryzacyjny"
    teleport_ca_pin: "nie tak sekretna pin CA"
    teleport_auth_server: "serwer autoryzacji"
    teleport_proxy_server: "serwer proxy"

Stworzony plik konfiguracyjny Teleport do /etc/teleport.yaml

---
version: v3
teleport:
  auth_token: "super sekretny token autoryzacyjny"
  ca_pin: "nie tak sekretna pin CA"
  auth_server: serwer autoryzacji
  proxy_server: serwer proxy
  log:
    output: stderr
    severity: INFO
    format:
      output: text
  diag_addr: ""
ssh_service:
  enabled: "tak"
  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: "nie"
  https_keypairs: []
  https_keypairs_reload_interval: 0s
  acme: {}
auth_service:
  enabled: "nie"

Licencja

MIT / BSD

Informacje o Autorze

Ta rola została stworzona w 2021 roku przez Matthew Draws dla KPM Power

Utrzymujący

O projekcie

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

Zainstaluj
ansible-galaxy install mdsketch.teleport
Licencja
mit
Pobrania
19.6k
Właściciel