> For the complete documentation index, see [llms.txt](https://thorstenkramm.gitbook.io/saltstack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://thorstenkramm.gitbook.io/saltstack/salt-module.md).

# Salt Module

## Steht die Verbindung?

Als Erstes testen Sie, ob der Master alle Minions erreichen kann. Dazu geben Sie das Kommando `salt '*' test.ping` ein. Damit versucht der Salt-Master alle verfügbaren Minions einmal anzupingen.

Was passiert hinter den Kulissen? Sie haben auf der einen Seite ein Salt-Master und auf der anderen Seite mehrere Minion. der Master öffnet den TCP Port 4506. Auf diesem Port lauscht Zero MQ Messing System. An diesem sogenannten Message-Broker melden sich die Minion über eine AES verschlüsselte Verbindung an. Master und Minion kommunizieren über diesen Nachrichtenkanal. Die Minion müssen keine TCP Ports öffnen.

{% hint style="info" %}
Achten Sie bei der Verwendung des Wildcard-Zeichens `*` auf die Anführungszeichen, damit das Wildcard-Zeichen nicht von der Shell intepretiert und die Dateiliste im aktuellen aufgelöt wird. 🤦
{% endhint %}

### Was sind Salt-Module?

Salt-Module sind Befehle, welche der Master zu den Minions schickt. Die Minions führen diese Befehle aus. Ein Basisbefehl ist `cmd.run` gefolgt von einem Befehl, den das angesprochene Betriebssystem versteht. Beispielsweise

```
salt '*' cmd.run "cat /etc/os-release"
```

In diesem Beispiel wird `cmd.run` und das Kommando `cat /etc/os-release` ausgeführt. Damit melden die Minion an den Master zurück, welches Betriebssystem gerade läuft.

### Abstraktionsschicht

Die eingebauten Module von Salt können aber mehr als nur Befehle des Betriebssystems aufrufen. Die Befehle des Betriebssystems werden von Salt eigene Kommandos gekapselt.

#### Beispiel Pakete installieren

Schauen Sie sich das Modul `pkg.upgrade` an: Wenn Sie dieses zu einem Minion schicken, der mit Rocky oder RedHat läuft, führt der Minion `yum update` aus. Ein Minion mit Debian oder Ubuntu hingegen, führt übersetzt `pkg.upgrade` in die Kommandos `apt-get update && apt-get -y upgrade`.

Die Salt Module kapseln die unterschiedlichen Kommandos der unterschiedlichen Distributionen und Betriebssysteme in ein einheitliches Set von Befehlen.

![Der Salt Minion übersetzt die "Modul-Sprache" in die Befehle der Distribution](/files/ItscgpP112rB1uhpvMdE)

![Salt kennt viele Distributionen](/files/-LbA8pfeX-GFHgN9rPKr)

### Weitere Beispiele

```
salt '*' pkg.install cowsay -l debug
salt '*' cmd.run "cowsay hallo"
salt '*' file.append /etc/motd \
        "This machine is managed by salt."
salt '*' hosts.add_host 8.8.8.8 google-public-dns-a.google.com
salt '*' status.loadavg
salt '*' status.diskusage / ext? xfs
```

📖 [mehr Status Module](https://docs.saltproject.io/en/latest/ref/modules/all/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://thorstenkramm.gitbook.io/saltstack/salt-module.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
