mdsketch.teleport
Rola Ansible: Usługa Węzła Teleport
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
- 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