Saltstack
  • Willkommen
  • Einführung
  • Testumgebung
    • Salt-Master öffentlicher FQDN
  • Salt installieren
    • Minions und Master "verheiraten"
  • Salt Module
    • Beispiel Benutzer anlegen
    • Dateien hin und her kopieren
  • Salt States
    • Yaml verstehen
    • Editoren anpassen
    • Beispiel Benutzer verwalten
    • Abhängigkeiten
    • Dateien editieren
    • Shell Kommandos
    • Beispiel Caddy Webserver
  • Linter
  • Minions adressieren
    • Grains
    • Hostgruppen - Node Groups
  • Jinja
    • Beispiel Caddy PHP
  • top.sls
  • Output
  • Pillars
    • Hosts Pillars
    • GPG
    • Vault
    • Datenbanken
    • Beispiel Benutzerverwaltung
  • Salt-Mine
  • Eigene Module erstellen
  • Orchestrierung
  • Returner & Job-Cache
  • Salt SSH
  • Salt API
  • Salt Cloud
    • Hinweise und Fallen
    • KVM und Libvirt
    • Scaleway
    • Digitalocean
    • Hetzner Cloud
    • eigene Deploymentscripte
    • Dynamische Portforwarding
    • Keys automatisch aufräumen
    • Start Aktionen
  • GIT
    • Alternative CD
  • Salt Reactor
  • Salt für Windows
    • Software ohne Repository installieren
    • PowerShell
    • Chocolatey Paktemanager
    • Lokales Logon Skript
    • Software Repository
  • Beispiele
    • Restic Backup
    • Apache Web-Proxy
    • Wartungstunnel
    • Unattended Upgrades
  • Salt & Etcd
  • Salt ACS
Powered by GitBook
On this page
  • Salt im Push Modus mit SSH
  • Salt-SSH installieren
  • Inventar anlegen
  • Problem: Python fehlt
  • Key automatisch akzeptieren
  • Defaults setzen

Salt SSH

Es geht auch ohne Minion.

Salt im Push Modus mit SSH

Salt-SSH benutzte nur SSH zum Verteilen und »ausführen« der Sates. Eine Installation der Minion-Software auf den Zielsystemen ist nicht notwendig.

Salt-SSH installieren

Salt-SSH gehört nicht zum Standard-Umfang vom Salt-Master und muss mit apt install salt-ssh nachinstalliert werden.

Inventar anlegen

/etc/salt/roster

/etc/salt/roster
web1:
  host: 192.168.42.1 # The IP addr or DNS hostname
  user: fred # Remote executions will be executed as user fred
  passwd: foobarbaz # The password to use for login, if omitted, keys are used
  sudo: True # Whether to sudo to root, not enabled by default
  priv: ~/.ssh/id_ed25519
web2:
  host: 192.168.42.2

Sollte der Root-User des Salt-Masters noch kein SSH-Key-Paar haben, generieren Sie eines mit dem Kommando ssh-keygen -N "" -t ed25519 -C "root@salt-master.local" .

Problem: Python fehlt

Auf einem minimal installieren System kann es passieren, dass Salt SSH auf der Gegenseite keine oder ein nicht ausreichend aktuelle Python Version installiert ist.

root@master:~# salt-ssh box1 test.ping
[ERROR   ] Failed collecting tops for Python binary python3.
[ERROR   ] ERROR: Failure deploying thin, retrying:
STDOUT:

STDERR:

RETCODE: 10
box1:
    ----------
    retcode:
        10
    stderr:
    stdout:
        ERROR: Python version error. Recommendation(s) follow:
        Install Python 2.6 / Python 3 Salt dependencies on the Salt SSH master 
        to interact with Python 2.6 / Python 3 targets

Lösung

Über den sogenannten Raw-Modus, können Kommandos auch ohne Python ausgeführt werden, etwa die Installation von Python.

# Debian/Ubuntu
salt-ssh <MINION-ID> -r 'sudo apt-get update; sudo apt-get -y install python3-minimal'
# Suse
salt-ssh <MINION-ID> -r "zypper --non-interactive install -y openssh-clients python3"
# RedHat
salt-ssh <MINION-ID> -r "yum -y install python3"

Key automatisch akzeptieren

Wenn Sie viele Hosts per Salt SSH verwalten, möchten Sie nicht zu jedem Host eine manuelle SSH-Verbindung aufbauen, um den Fingerprint in der Know-Hosts-Datei zu speichern. Abhilfe schafft eine SSH-Client-Einstellung:

/root/.ssh/config
StrictHostKeyChecking no

Defaults setzen

Anstatt für jeden Host in der Roster-Datei den Usernamen und den Port für die SSH-Verbindung zu setzen, können Sie auch den globalen Default ändern.

/etc/salt/master.d/ssh.conf
ssh_sudo: False
ssh_timeout: 60
ssh_user: root
ssh_use_home_key: True
roster_defaults:
  priv: /root/.ssh/id_ed25519

Für alle weiteren SSH-Default-Werte siehe grep ssh /etc/salt/master.

PreviousReturner & Job-CacheNextSalt API

Last updated 1 year ago

Python fehlt :-(