SSH¶
Polycrate bietet native SSH-Integration für schnellen Zugriff auf Hosts aus dem Ansible-Inventory. Diese Integration ermöglicht direkten SSH-Zugriff ohne manuelle Konfiguration.
Voraussetzungen¶
Die SSH-Integration funktioniert nur, wenn ein inventory.yml im Workspace vorhanden ist. Polycrate ermittelt automatisch: - SSH-Host-Adresse (ansible_host) - SSH-Port (ansible_ssh_port, default: 22) - SSH-User (ansible_user) - SSH-Schlüssel aus dem Workspace
Verfügbare Hosts anzeigen¶
Um alle verfügbaren Hosts im Workspace anzuzeigen:
Ausgabe:
SSH-Verbindung herstellen¶
Mit Hostname¶
Um eine SSH-Verbindung zu einem bestimmten Host herzustellen:
Beispiel:
Interaktive Host-Auswahl¶
Wenn kein Hostname angegeben wird, zeigt Polycrate eine interaktive Auswahl aller verfügbaren Hosts:
Ausgabe:
? Select a host to connect to:
👉 web-1 (ubuntu@192.168.1.10:22)
web-2 (ubuntu@192.168.1.11:22)
db-1 (postgres@192.168.1.20:2222)
--------- Host Details ----------
Name: web-1
Host: 192.168.1.10
User: ubuntu
- Mit Pfeiltasten durch die Hosts navigieren
- Mit Enter die Verbindung herstellen
- Mit Ctrl+C abbrechen
Schnelle Navigation
Die interaktive Auswahl zeigt bis zu 10 Hosts gleichzeitig an. Bei vielen Hosts können Sie mit den Pfeiltasten scrollen.
Tab-Completion¶
Polycrate unterstützt Shell-Autocompletion für den SSH-Befehl. Mit Tab werden alle verfügbaren Hosts angezeigt:
Siehe Shell-Autocompletion für die Einrichtung.
Polycrate: 1. Liest das Ansible-Inventory 2. Ermittelt automatisch die Verbindungsinformationen 3. Nutzt den SSH-Schlüssel aus dem Workspace (id_rsa) 4. Stellt die direkte SSH-Verbindung her
Beispiel-Workflow¶
1. Inventory erstellen¶
# inventory.yml im Workspace
all:
hosts:
web-1:
ansible_host: 192.168.1.10
ansible_user: ubuntu
ansible_ssh_port: 22
web-2:
ansible_host: 192.168.1.11
ansible_user: ubuntu
db-1:
ansible_host: 192.168.1.20
ansible_user: postgres
ansible_ssh_port: 2222
2. Verfügbare Hosts anzeigen¶
3. Verbindung herstellen¶
Verwendung¶
Direkter Zugriff für Debugging¶
# SSH zu Host
polycrate ssh web-1
# Befehl auf Host ausführen (interaktive Sitzung)
polycrate ssh web-1
# Dann im SSH-Terminal:
$ sudo systemctl status nginx
$ tail -f /var/log/application.log
Nach Ansible-Deployment¶
# 1. Server mit Ansible konfigurieren
polycrate run webservers configure
# 2. SSH für manuelle Checks
polycrate ssh web-1
# 3. Logs prüfen, Service neu starten, etc.
Shell-Autocompletion¶
Polycrate unterstützt Tab-Completion für alle Commands, einschließlich dynamischer Host-Completion für polycrate ssh.
Zsh¶
# Einmalig aktivieren
source <(polycrate completion zsh)
# Permanent in ~/.zshrc
echo 'source <(polycrate completion zsh)' >> ~/.zshrc
Bash¶
# Einmalig aktivieren
source <(polycrate completion bash)
# Permanent in ~/.bashrc
echo 'source <(polycrate completion bash)' >> ~/.bashrc
Fish¶
Nach der Aktivierung:
polycrate ssh <TAB>
# Zeigt alle verfügbaren Hosts aus dem Inventory
polycrate ssh web<TAB>
# Vervollständigt zu passenden Hosts (z.B. web-1, web-2)
Workspace erforderlich
Die Host-Completion funktioniert nur in einem gültigen Polycrate-Workspace mit inventory.yml.
Hinweise¶
- SSH-Schlüssel: Polycrate nutzt automatisch
id_rsaaus dem Workspace-Root oderartifacts/secrets/id_rsa - Passphrase: Falls der SSH-Schlüssel eine Passphrase hat, werden Sie zur Eingabe aufgefordert ⚠️ Experimental
- Port: Standard ist Port 22, kann aber per
ansible_ssh_portim Inventory überschrieben werden - User: Wird aus
ansible_userim Inventory gelesen (Standard:root)
Schneller Zugriff
Mit polycrate ssh (interaktive Auswahl) oder polycrate ssh <TAB> (Autocompletion) haben Sie blitzschnellen Zugriff auf alle Server!