Inhaltsverzeichnis
SaltStack
ist eine Open-Source-Software zur Automatisierung der Konfiguration von Serversystemen. Mit SaltStack lassen sich beispielsweise Software-Pakete installieren und konfigurieren sowie beliebige Konfigurationsbefehle von einem zentralen Rechner aus auf einer Vielzahl verwalteter Server ausführen.
Beschreibung | Externer Link |
---|---|
Homepage | https://www.saltstack.com/ |
Dokumentation | https://docs.saltstack.com/ |
Installation | https://repo.saltstack.com/ |
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root
zu werden, geben Sie bitte nachfolgenden Befehl ein:
$ su - Password:
Herunterladen
Zur Installation von SaltStack kann ein shell
-Skript, das Salt Bootstrap Skript, verwendet werden, welches es ermöglicht, den Salt Minion oder Master auf einer Vielzahl von Systemversionen und Versionen zu installieren.
Das Salt Bootstrap Skript ist ein shell
-Skript, das als
bootstrap-salt.sh
bekannt ist. Es durchläuft eine Reihe von Prüfungen, um den Typ und die Version des Betriebssystems zu ermitteln. Anschließend installiert es die Salt-Binärdateien mit den entsprechenden Methoden.
Das Salt Bootstrap Skript installiert die minimale Anzahl von Paketen, die für die Ausführung des SaltStack erforderlich sind. Das bedeutet, dass, falls das Salt Bootstrap Skript zur Installation über eine Paket-Installation ausgeführt wird, Git nicht installiert wird. Die Installation der minimalen Anzahl von Paketen hilft sicherzustellen, dass das Salt Bootstrap Skript so klein wie möglich bleibt, vorausgesetzt, es werden alle anderen erforderlichen Pakete ebenfalls installiert, nachdem die Salt Binärdateien auf dem System vorhanden sind.
Das Salt Bootstrap Skript wird in einem separaten Repository von SaltStack verwaltet, komplett mit eigenen Problemen, Erweiterungs-Anfragen, Beitragsrichtlinien, Release-Protokoll, uvm.
Nachfolgender Befehl lädt das aktuellste Salt Bootstrap Skript von den SaltStack-Servern herunter und speichert dieses im Verzeichnis /tmp
:
# curl -L https://bootstrap.saltstack.com -o /tmp/install_salt.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 264 100 264 0 0 946 0 --:--:-- --:--:-- --:--:-- 956 100 260k 100 260k 0 0 539k 0 --:--:-- --:--:-- --:--:-- 539k
Nachfolgender Befehl überprüft ob das Herunterladen erfolgreich durchgeführt wurde:
# ls -l /tmp | grep install_salt.sh -rw-r--r-- 1 root root 266421 May 28 20:40 install_salt.sh
Installation
Nachfolgend soll die Installation eines SaltStack
salt-master
(Server in der Installation)salt-minion
(Client in der Installation)
durchgeführt werden.
Optional können nachfolgende Pakete ebenfalls installiert werden:
salt-ssh
- kann entfernten Ausführung auch ohne die Verwendung eines Agenten durchführen.salt-syndic
-master
-Daemon, der Anweisungen von einem übergeordneten Master empfangen kann. Kommt bei einer mehrstufige Organisation der SaltStack-Infrastruktur zum Einsatz.salt-cloud
- stellt neue Cloud-VMs bereit.
HINWEIS - Die Installation des MASTER
und MINION
kann auch auf dem selben Server erfolgen, damit dieser ebenfalls wie ein Zielserver angesprochen und verwaltet werden kann!
Master
Zur Installation des MASTER
ist die Ausführung von nachfolgender Befehl auf dem entsprechendem Server erforderlich, welcher der MASTER
- die zentrale Verwaltungsstelle - sein soll, erforderlich:
# sh /tmp/install_salt.sh -P -M * INFO: Running version: 2019.05.20 * INFO: Executed by: shell pipe * INFO: Command line: '/tmp/install_salt.sh -P -M' * INFO: System Information: * INFO: CPU: GenuineIntel * INFO: CPU Arch: x86_64 * INFO: OS Name: Linux * INFO: OS Version: 3.10.0-957.12.2.el7.x86_64 * INFO: Distribution: CentOS 7.6 * INFO: Installing minion * INFO: Installing master * INFO: Found function install_centos_stable_deps * INFO: Found function config_salt * INFO: Found function preseed_master * INFO: Found function install_centos_stable * INFO: Found function install_centos_stable_post * INFO: Found function install_centos_restart_daemons * INFO: Found function daemons_running * INFO: Found function install_centos_check_services * INFO: Running install_centos_stable_deps() Loaded plugins: changelog, priorities Cleaning repos: adobe-linux-x86_64 base cr epel extras mailserver.guru-os : mailserver.guru-testing nux-dextop saltstack updates 27 metadata files removed 18 sqlite files removed 0 metadata files removed Loaded plugins: changelog, priorities 880 packages excluded due to repository priority protections Package chkconfig-1.7.4-1.el7.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package PyYAML.x86_64 0:3.10-11.el7 will be installed --> Processing Dependency: libyaml-0.so.2()(64bit) for package: PyYAML-3.10-11.el7.x86_64 ---> Package yum-utils.noarch 0:1.1.31-50.el7 will be installed --> Processing Dependency: python-kitchen for package: yum-utils-1.1.31-50.el7.noarch --> Running transaction check ---> Package libyaml.x86_64 0:0.1.4-11.el7_0 will be installed ---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: PyYAML x86_64 3.10-11.el7 base 153 k yum-utils noarch 1.1.31-50.el7 base 121 k Installing for dependencies: libyaml x86_64 0.1.4-11.el7_0 base 55 k python-kitchen noarch 1.1.1-5.el7 base 267 k Transaction Summary ================================================================================ Install 2 Packages (+2 Dependent packages) Total download size: 596 k Installed size: 2.5 M Downloading packages: -------------------------------------------------------------------------------- Total 829 kB/s | 596 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : python-kitchen-1.1.1-5.el7.noarch 1/4 Installing : libyaml-0.1.4-11.el7_0.x86_64 2/4 Installing : PyYAML-3.10-11.el7.x86_64 3/4 Installing : yum-utils-1.1.31-50.el7.noarch 4/4 Verifying : libyaml-0.1.4-11.el7_0.x86_64 1/4 Verifying : python-kitchen-1.1.1-5.el7.noarch 2/4 Verifying : yum-utils-1.1.31-50.el7.noarch 3/4 Verifying : PyYAML-3.10-11.el7.x86_64 4/4 Installed: PyYAML.x86_64 0:3.10-11.el7 yum-utils.noarch 0:1.1.31-50.el7 Dependency Installed: libyaml.x86_64 0:0.1.4-11.el7_0 python-kitchen.noarch 0:1.1.1-5.el7 Complete! * INFO: Running install_centos_stable() Loaded plugins: changelog, priorities 880 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package salt-master.noarch 0:2015.5.10-2.el7 will be installed --> Processing Dependency: salt = 2015.5.10-2.el7 for package: salt-master-2015.5.10-2.el7.noarch --> Processing Dependency: systemd-python for package: salt-master-2015.5.10-2.el7.noarch ---> Package salt-minion.noarch 0:2015.5.10-2.el7 will be installed --> Running transaction check ---> Package salt.noarch 0:2015.5.10-2.el7 will be installed --> Processing Dependency: python-crypto for package: salt-2015.5.10-2.el7.noarch --> Processing Dependency: python-jinja2 for package: salt-2015.5.10-2.el7.noarch --> Processing Dependency: python-msgpack for package: salt-2015.5.10-2.el7.noarch --> Processing Dependency: python-zmq for package: salt-2015.5.10-2.el7.noarch ---> Package systemd-python.x86_64 0:219-62.el7_6.6 will be installed --> Running transaction check ---> Package python-jinja2.noarch 0:2.7.2-3.el7_6 will be installed --> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-3.el7_6.noarch --> Processing Dependency: python-markupsafe for package: python-jinja2-2.7.2-3.el7_6.noarch ---> Package python-zmq.x86_64 0:14.3.1-1.el7 will be installed --> Processing Dependency: libzmq.so.3()(64bit) for package: python-zmq-14.3.1-1.el7.x86_64 ---> Package python2-crypto.x86_64 0:2.6.1-15.el7 will be installed --> Processing Dependency: libtomcrypt.so.0()(64bit) for package: python2-crypto-2.6.1-15.el7.x86_64 ---> Package python2-msgpack.x86_64 0:0.5.6-5.el7 will be installed --> Running transaction check ---> Package libtomcrypt.x86_64 0:1.17-26.el7 will be installed --> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt-1.17-26.el7.x86_64 --> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17-26.el7.x86_64 ---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed ---> Package python-markupsafe.x86_64 0:0.11-10.el7 will be installed ---> Package zeromq3.x86_64 0:3.2.5-1.el7 will be installed --> Processing Dependency: libpgm-5.2.so.0()(64bit) for package: zeromq3-3.2.5-1.el7.x86_64 --> Running transaction check ---> Package libtommath.x86_64 0:0.42.0-6.el7 will be installed ---> Package openpgm.x86_64 0:5.2.122-2.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: salt-master noarch 2015.5.10-2.el7 epel 1.0 M salt-minion noarch 2015.5.10-2.el7 epel 26 k Installing for dependencies: libtomcrypt x86_64 1.17-26.el7 extras 224 k libtommath x86_64 0.42.0-6.el7 extras 36 k openpgm x86_64 5.2.122-2.el7 epel 171 k python-babel noarch 0.9.6-8.el7 base 1.4 M python-jinja2 noarch 2.7.2-3.el7_6 updates 518 k python-markupsafe x86_64 0.11-10.el7 base 25 k python-zmq x86_64 14.3.1-1.el7 epel 468 k python2-crypto x86_64 2.6.1-15.el7 extras 477 k python2-msgpack x86_64 0.5.6-5.el7 epel 64 k salt noarch 2015.5.10-2.el7 epel 4.1 M systemd-python x86_64 219-62.el7_6.6 updates 133 k zeromq3 x86_64 3.2.5-1.el7 epel 344 k Transaction Summary ================================================================================ Install 2 Packages (+12 Dependent packages) Total download size: 8.9 M Installed size: 33 M Downloading packages: -------------------------------------------------------------------------------- Total 1.2 MB/s | 8.9 MB 00:07 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : systemd-python-219-62.el7_6.6.x86_64 1/14 Installing : python-babel-0.9.6-8.el7.noarch 2/14 Installing : libtommath-0.42.0-6.el7.x86_64 3/14 Installing : libtomcrypt-1.17-26.el7.x86_64 4/14 Installing : python2-crypto-2.6.1-15.el7.x86_64 5/14 Installing : python2-msgpack-0.5.6-5.el7.x86_64 6/14 Installing : openpgm-5.2.122-2.el7.x86_64 7/14 Installing : zeromq3-3.2.5-1.el7.x86_64 8/14 Installing : python-zmq-14.3.1-1.el7.x86_64 9/14 Installing : python-markupsafe-0.11-10.el7.x86_64 10/14 Installing : python-jinja2-2.7.2-3.el7_6.noarch 11/14 Installing : salt-2015.5.10-2.el7.noarch 12/14 Installing : salt-master-2015.5.10-2.el7.noarch 13/14 Installing : salt-minion-2015.5.10-2.el7.noarch 14/14 Verifying : python-markupsafe-0.11-10.el7.x86_64 1/14 Verifying : openpgm-5.2.122-2.el7.x86_64 2/14 Verifying : python2-msgpack-0.5.6-5.el7.x86_64 3/14 Verifying : salt-master-2015.5.10-2.el7.noarch 4/14 Verifying : salt-minion-2015.5.10-2.el7.noarch 5/14 Verifying : salt-2015.5.10-2.el7.noarch 6/14 Verifying : zeromq3-3.2.5-1.el7.x86_64 7/14 Verifying : libtommath-0.42.0-6.el7.x86_64 8/14 Verifying : python-jinja2-2.7.2-3.el7_6.noarch 9/14 Verifying : python2-crypto-2.6.1-15.el7.x86_64 10/14 Verifying : python-zmq-14.3.1-1.el7.x86_64 11/14 Verifying : python-babel-0.9.6-8.el7.noarch 12/14 Verifying : libtomcrypt-1.17-26.el7.x86_64 13/14 Verifying : systemd-python-219-62.el7_6.6.x86_64 14/14 Installed: salt-master.noarch 0:2015.5.10-2.el7 salt-minion.noarch 0:2015.5.10-2.el7 Dependency Installed: libtomcrypt.x86_64 0:1.17-26.el7 libtommath.x86_64 0:0.42.0-6.el7 openpgm.x86_64 0:5.2.122-2.el7 python-babel.noarch 0:0.9.6-8.el7 python-jinja2.noarch 0:2.7.2-3.el7_6 python-markupsafe.x86_64 0:0.11-10.el7 python-zmq.x86_64 0:14.3.1-1.el7 python2-crypto.x86_64 0:2.6.1-15.el7 python2-msgpack.x86_64 0:0.5.6-5.el7 salt.noarch 0:2015.5.10-2.el7 systemd-python.x86_64 0:219-62.el7_6.6 zeromq3.x86_64 0:3.2.5-1.el7 Complete! * INFO: Running install_centos_stable_post() * INFO: Running install_centos_check_services() * INFO: Running install_centos_restart_daemons() * INFO: Running daemons_running() * INFO: Salt installed!
HINWEIS - Der SaltStack-MASTER
kann sich selbst verwalten, so dass standardmäßig zusammen mit dem SaltStack-MASTER
auch ein SaltStack-MINION
installiert wird.
HINWEIS - Wenn der SaltStack-MINION
nicht installieren werden soll, muss die Option -N
zusätzlich an den oben gezeigten Befehl angefügt werden, wie nachfolgendes Beispiel zeigt:
# sh /tmp/install_salt.sh -P -M -N
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket salt-master
installiert wurden:
# rpm -qil salt-master Name : salt-master Version : 2015.5.10 Release : 2.el7 Architecture: noarch Install Date: Tue 28 May 2019 11:13:45 AM CEST Group : System Environment/Daemons Size : 1061800 License : ASL 2.0 Signature : RSA/SHA256, Wed 01 Jun 2016 09:45:00 AM CEST, Key ID 6a2faea2352c64e5 Source RPM : salt-2015.5.10-2.el7.src.rpm Build Date : Tue 31 May 2016 04:12:16 PM CEST Build Host : buildhw-06.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://saltstack.org/ Summary : Management component for salt, a parallel remote execution system Description : The Salt master is the central server to which all minions connect. /etc/salt/master /usr/bin/salt /usr/bin/salt-cp /usr/bin/salt-key /usr/bin/salt-master /usr/bin/salt-run /usr/bin/salt-unity /usr/lib/systemd/system/salt-master.service /usr/share/man/man1/salt-cp.1.gz /usr/share/man/man1/salt-key.1.gz /usr/share/man/man1/salt-master.1.gz /usr/share/man/man1/salt-run.1.gz /usr/share/man/man1/salt-unity.1.gz /usr/share/man/man7/salt.7.gz
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket salt-minion
installiert wurden:
# rpm -qil salt-minion Name : salt-minion Version : 2015.5.10 Release : 2.el7 Architecture: noarch Install Date: Tue 28 May 2019 11:13:46 AM CEST Group : System Environment/Daemons Size : 30620 License : ASL 2.0 Signature : RSA/SHA256, Wed 01 Jun 2016 09:43:53 AM CEST, Key ID 6a2faea2352c64e5 Source RPM : salt-2015.5.10-2.el7.src.rpm Build Date : Tue 31 May 2016 04:12:16 PM CEST Build Host : buildhw-06.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://saltstack.org/ Summary : Client component for Salt, a parallel remote execution system Description : The Salt minion is the agent component of Salt. It listens for instructions from the master, runs jobs, and returns results back to the master. /etc/salt/minion /usr/bin/salt-call /usr/bin/salt-minion /usr/lib/systemd/system/salt-minion.service /usr/share/man/man1/salt-call.1.gz /usr/share/man/man1/salt-minion.1.gz
/etc/yum.repos.d/saltstack.repo
Nachfolgendes Repository
saltstack.repo
wurde im Verzeichnis
/etc/yum.repos.d/
installiert.
Minion
Zur Installation des MINION
ist die Ausführung von nachfolgender Befehl auf dem entsprechendem Server erforderlich, welcher den MINION
- den Agenten - beheimaten soll, erforderlich:
# sh /tmp/install_salt.sh -P * INFO: Running version: 2019.05.20 * INFO: Executed by: sh * INFO: Command line: '/tmp/install_salt.sh -P' * INFO: System Information: * INFO: CPU: GenuineIntel * INFO: CPU Arch: x86_64 * INFO: OS Name: Linux * INFO: OS Version: 3.10.0-957.12.2.el7.x86_64 * INFO: Distribution: CentOS 7.6 * INFO: Installing minion * INFO: Found function install_centos_stable_deps * INFO: Found function config_salt * INFO: Found function preseed_master * INFO: Found function install_centos_stable * INFO: Found function install_centos_stable_post * INFO: Found function install_centos_restart_daemons * INFO: Found function daemons_running * INFO: Found function install_centos_check_services * INFO: Running install_centos_stable_deps() Loaded plugins: changelog, priorities 880 packages excluded due to repository priority protections Package yum-utils-1.1.31-50.el7.noarch already installed and latest version Package chkconfig-1.7.4-1.el7.x86_64 already installed and latest version Package PyYAML-3.10-11.el7.x86_64 already installed and latest version Nothing to do * INFO: Running install_centos_stable() Loaded plugins: changelog, priorities 880 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package salt-minion.noarch 0:2015.5.10-2.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: salt-minion noarch 2015.5.10-2.el7 epel 26 k Transaction Summary ================================================================================ Install 1 Package Total download size: 26 k Installed size: 30 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : salt-minion-2015.5.10-2.el7.noarch 1/1 Verifying : salt-minion-2015.5.10-2.el7.noarch 1/1 Installed: salt-minion.noarch 0:2015.5.10-2.el7 Complete! * INFO: Running install_centos_stable_post() * INFO: Running install_centos_check_services() * INFO: Running install_centos_restart_daemons() * INFO: Running daemons_running() * INFO: Salt installed!
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket salt-minion
installiert wurden:
# rpm -qil salt-minion Name : salt-minion Version : 2015.5.10 Release : 2.el7 Architecture: noarch Install Date: Tue 28 May 2019 11:13:46 AM CEST Group : System Environment/Daemons Size : 30620 License : ASL 2.0 Signature : RSA/SHA256, Wed 01 Jun 2016 09:43:53 AM CEST, Key ID 6a2faea2352c64e5 Source RPM : salt-2015.5.10-2.el7.src.rpm Build Date : Tue 31 May 2016 04:12:16 PM CEST Build Host : buildhw-06.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://saltstack.org/ Summary : Client component for Salt, a parallel remote execution system Description : The Salt minion is the agent component of Salt. It listens for instructions from the master, runs jobs, and returns results back to the master. /etc/salt/minion /usr/bin/salt-call /usr/bin/salt-minion /usr/lib/systemd/system/salt-minion.service /usr/share/man/man1/salt-call.1.gz /usr/share/man/man1/salt-minion.1.gz
/etc/yum.repos.d/saltstack.repo
Nachfolgendes Repository
saltstack.repo
wurde im Verzeichnis
/etc/yum.repos.d/
installiert.
iptables Regel
Damit die Kommunikation zwischen MASTER
und MINION
möglich ist und nicht die Weitergabe der Konfigurationsinformationen vom Paketfilter iptables
blockiert wird, müssen nachfolgende Regeln zum iptables
-Regelwerk hinzugefügt werden.
Um die aktuellen iptables
-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Nachfolgende Befehle, fügen folgende iptables
-Regeln dem iptables
-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:
-A INPUT -s 192.168.178.0/24 -p tcp --dport 4505:4506 -j ACCEPT
und hier die Befehle:
# iptables -I INPUT 5 -s 192.168.178.0/24 -p tcp --dport 4505:4506 -j ACCEPT
Ein erneute Abfrage des iptables
-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 ACCEPT tcp -- * * 192.168.178.0/24 0.0.0.0/0 tcp dpts:4505:4506 6 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 6 packets, 936 bytes) num pkts bytes target prot opt in out source destination
Die neue Zeile ist an Position 5 zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):
... 5 0 0 ACCEPT tcp -- * * 192.168.178.0/24 0.0.0.0/0 tcp dpts:4505:4506 ...
Um diese iptables
-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables
-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
# /usr/sbin/iptables-save > /etc/sysconfig/iptables
Daemon Start
Nach der Installation des SaltStack wurden durch das Salt Bootstrap Skript die Start-Skripte im systemd
-Umfeld bereits aktiviert (enabled
) und die Dienste (service
)
salt-master.service
salt-minion.service
sind bereits gestartet. Dies kann durch nachfolgende Abfragen überprüft werden:
# systemctl list-unit-files --type=service | grep -e salt* salt-master.service enabled salt-minion.service enabled
und
# systemctl status salt-master.service salt-minion.service ● salt-master.service - The Salt Master Server Loaded: loaded (/usr/lib/systemd/system/salt-master.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-05-28 11:13:53 CEST; 22h ago Main PID: 475 (salt-master) Tasks: 113 CGroup: /system.slice/salt-master.service ├─475 /usr/bin/python /usr/bin/salt-master ├─487 /usr/bin/python /usr/bin/salt-master ├─488 /usr/bin/python /usr/bin/salt-master ├─489 /usr/bin/python /usr/bin/salt-master ├─494 /usr/bin/python /usr/bin/salt-master ├─498 /usr/bin/python /usr/bin/salt-master ├─502 /usr/bin/python /usr/bin/salt-master ├─505 /usr/bin/python /usr/bin/salt-master ├─508 /usr/bin/python /usr/bin/salt-master ├─512 /usr/bin/python /usr/bin/salt-master └─516 /usr/bin/python /usr/bin/salt-master May 28 11:13:52 pml125.home.tachtler.net systemd[1]: Starting The Salt Master... May 28 11:13:53 pml125.home.tachtler.net systemd[1]: Started The Salt Master ... ● salt-minion.service - The Salt Minion Loaded: loaded (/usr/lib/systemd/system/salt-minion.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-05-28 11:41:27 CEST; 21h ago Main PID: 2524 (salt-minion) Tasks: 3 CGroup: /system.slice/salt-minion.service ├─2524 /usr/bin/python /usr/bin/salt-minion └─2528 /usr/bin/python /usr/bin/salt-minion May 29 09:35:37 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] DNS lo... May 29 09:35:37 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] Master... May 29 09:36:07 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] DNS lo... May 29 09:36:07 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] Master... May 29 09:36:37 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] DNS lo... May 29 09:36:37 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] Master... May 29 09:37:07 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] DNS lo... May 29 09:37:07 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] Master... May 29 09:37:37 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] DNS lo... May 29 09:37:37 pml125.home.tachtler.net salt-minion[2524]: [ERROR ] Master... Hint: Some lines were ellipsized, use -l to show in full.
HINWEIS - Da noch keine Konfiguration durchgeführt wurde, bitte die Fehlermeldungen des salt-minion.service
hier an dieser Stelle erst einmal ignorieren!
Konfiguration: Kommunikation
Die hauptsächliche Konfiguration von Salt erfolgt unterhalb der Verzeichnisstruktur von
/etc/salt
Dies gilt für den salt-master
und auch für den salt-minion
.
HINWEIS - Nachfolgende Konfigurationen erfolgen auf dem selben Server, der gleichzeitig salt-master
und salt-minion
ist!
Minion: Minion-ID ermitteln
Damit ein Minion
-Daemon mit dem Master
-Daemon kommunizieren kann, muss für den Minion
-Daemon eine eindeutige Minion-ID
vorhanden sein. Diese Minion-ID
ist standardmäßig der
- Hostname
des jeweiligen Servers, auf dem der Minion
-Daemon läuft.
Nachfolgender Befehl gibt die Minion-ID
des Minion
-Daemon auf dem jeweiligen Server auf dem dieser läuft aus:
# cat /etc/salt/minion_id pml125.home.tachtler.net
Minion: Schlüssel erstellen
WICHTIG - Dies muss auf jedem Server mit Minion
-Daemon durchgeführt werden!
Salt verwendet öffentliche Schlüssel zur Authentifizierung mit dem Master
-Daemon und verwendet dann eine schnellere AES-Verschlüsselung für die Nutzlastkommunikation; Authentifizierung und Verschlüsselung, welche ebenfalls Bestandteil von Salt sind.
Die weiteren Befehlsausführungen sollen im Verzeichnis, welches auch das Verzeichnis ist, in dem der Minion
-Daemon dessen eigene Schlüssel erwartet
/etc/salt/pki/minion
durchgeführt werden und dafür kann mit nachfolgendem Befehl:
# cd /etc/salt/pki/minion
in das Verzeichnis gewechselt werden.
Damit eine Minion
-Daemon mit dem Master
-Daemon kommunizieren kann, muss für den Minion
-Daemon ein PGP-Schlüsselpaar erstellt werden.
WICHTIG - Es ist notwendig, dass die öffentliche Schlüsseldatei den gleichen Namen wie die Minion-ID hat. Auf diese Weise verknüpft Salt die MINIONS
und deren Minion-ID mit dem jeweiligen MINION
-Schlüsseln!
HINWEIS - In diesem Beispiel lautet die Minion-ID
: pml125.home.tachtler.net
Zur Ermittlung der jeweiligen Minion-ID
siehe auch nachfolgenden internen Link:
Nachfolgender Befehl generiert ein PGP-Schlüssselpaar für den Minion
-Daemon mit dessen Minion-ID
als Namen:
# salt-key --gen-keys=pml125.home.tachtler.net
Ob die Erstellung des PGP-Schlüsselpaares erfolgreich war, kann mit nachfolgendem Befehl überprüft werden:
# ls -l /etc/salt/pki/minion/pml125.home.tachtler.net.* -r-------- 1 root root 1675 May 29 22:22 /etc/salt/pki/minion/pml125.home.tachtler.net.pem -rw-r--r-- 1 root root 451 May 29 22:22 /etc/salt/pki/minion/pml125.home.tachtler.net.pub
Minion: Schlüssel kopieren
Damit der Minion
-Daemon mit dem Master
-Daemon kommunizieren kann, muss das zuvor erstellte Schlüsselpaar, mit der entsprechenden Minion-ID
, in dem Verzeichnis
/etc/salt/pki/minion/
vorhanden sein bzw. in das Verzeichnis kopiert werden.
WICHTIG - Wenn MASTER
und MINION
nicht auf dem gleichen Server laufen, kann dies mit dem Befehl scp
durchgeführt werden!
# scp /etc/salt/pki/minion/pml125.home.tachtler.net.* [user]@[server]:/etc/salt/pki/minion/
Ob die Schlüssel, mit der entsprechenden Minion-ID
kopiert wurde, kann auf dem MASTER
mit nachfolgendem Befehl überprüft werden:
# ls -l /etc/salt/pki/minion total 16 -r-------- 1 root root 1675 May 29 22:30 minion.pem -rw-r--r-- 1 root root 451 May 29 22:30 minion.pub -r-------- 1 root root 1675 May 29 22:28 pml125.home.tachtler.net.pem -rw-r--r-- 1 root root 451 May 29 22:28 pml125.home.tachtler.net.pub
Minion: Master konfigurieren
Damit der Minion
-Daemon weiss, wer sein Master
-Daemon ist, muss dieser in der Konfigurationsdatei:
/etc/salt/minion
konfiguriert werden.
Dazu muss der Parameter master:
wie folgt auf den DNS-Namen des Master
-Daemon ergänzt werden, wie nachfolgende Konfiguration zeigt:
(Nur relevanter Ausschnitt)
# Set the location of the salt master server. If the master server cannot be # resolved, then the minion will fail to start. # Tachtler # default: #master: salt master: pml125.home.tachtler.net
ACHTUNG - Da sich hier Master
-Daemon und Minion
-Daemon auf dem selben Server befinden, ist hier der Name ebenfalls: pml125.home.tachtler.net
!
Minion: Daemon Neustart
Damit der Minion
-Daemon die zuvor durchgeführten Konfigurationen honoriert, muss der Minion
-Daemon neu gestartet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# systemctl restart salt-minion.service
Nach dem Neustart kann mit nachfolgendem Befehl der Status des Minion
-Daemon überprüft werden:
# systemctl status salt-minion.service ● salt-minion.service - The Salt Minion Loaded: loaded (/usr/lib/systemd/system/salt-minion.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-05-29 12:40:58 CEST; 1s ago Main PID: 19553 (salt-minion) Tasks: 3 CGroup: /system.slice/salt-minion.service ├─19553 /usr/bin/python /usr/bin/salt-minion └─19556 /usr/bin/python /usr/bin/salt-minion May 29 12:40:58 pml125.home.tachtler.net systemd[1]: Started The Salt Minion. May 29 12:40:59 pml125.home.tachtler.net salt-minion[19553]: [ERROR ] The S... Hint: Some lines were ellipsized, use -l to show in full.
WICHTIG - Die Ausgabe eines Fehlers [ERROR ] The S…
ist zu diesem Zeitpunkt normal!
Die Vollständige Fehlermeldung lautet hier:
May 29 12:42:09 pml125.home.tachtler.net salt-minion[19553]: [ERROR ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
Master: Daemon Neustart
Damit der Master
-Daemon die zuvor durchgeführten Konfigurationen honoriert, muss der Master
-Daemon neu gestartet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# systemctl restart salt-master.service
Nach dem Neustart kann mit nachfolgendem Befehl der Status des Master
-Daemon überprüft werden:
# systemctl status salt-master.service ● salt-master.service - The Salt Master Server Loaded: loaded (/usr/lib/systemd/system/salt-master.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-05-29 12:43:01 CEST; 4s ago Main PID: 19669 (salt-master) Tasks: 113 CGroup: /system.slice/salt-master.service ├─19669 /usr/bin/python /usr/bin/salt-master ├─19676 /usr/bin/python /usr/bin/salt-master ├─19677 /usr/bin/python /usr/bin/salt-master ├─19678 /usr/bin/python /usr/bin/salt-master ├─19679 /usr/bin/python /usr/bin/salt-master ├─19684 /usr/bin/python /usr/bin/salt-master ├─19685 /usr/bin/python /usr/bin/salt-master ├─19688 /usr/bin/python /usr/bin/salt-master ├─19691 /usr/bin/python /usr/bin/salt-master ├─19694 /usr/bin/python /usr/bin/salt-master └─19699 /usr/bin/python /usr/bin/salt-master May 29 12:43:00 pml125.home.tachtler.net systemd[1]: Stopped The Salt Master ... May 29 12:43:00 pml125.home.tachtler.net systemd[1]: Starting The Salt Master... May 29 12:43:01 pml125.home.tachtler.net systemd[1]: Started The Salt Master ... Hint: Some lines were ellipsized, use -l to show in full.
Master: Schlüssel akzeptieren
Nachfolgender Befehl soll überprüfen, welche öffentliche Schlüssel der Master
-Deamon von den jeweiligen Minion
-Daemon akzeptiert und auch (noch) nicht akzeptiert:
# salt-key --list all Accepted Keys: Denied Keys: Unaccepted Keys: pml125.home.tachtler.net Rejected Keys:
Damit der Master
-Daemon den öffentlichen Schlüssel des Minion
-Daemon akzeptiert (welcher in oben gezeigter Auflistung unter Unaccepted Keys:
gelistet ist) ist nachfolgender Befehl notwendig:
HINWEIS - Bei der Nachfrage unter Proceed? [n/Y]
ist ein Y
[Hochstellen]+[y]-Taste einzugeben!
# salt-key -A The following keys are going to be accepted: Unaccepted Keys: pml125.home.tachtler.net Proceed? [n/Y] Y Key for minion pml125.home.tachtler.net accepted.
Anschließend noch einmal die Überprüfung, welche öffentliche Schlüssel der Master
-Deamon von den jeweiligen Minion
-Daemon akzeptiert akzeptiert:
# salt-key --list all Accepted Keys: pml125.home.tachtler.net Denied Keys: Unaccepted Keys: Rejected Keys:
HINWEIS - Dies behebt auch den zuvor gesehenen Fehler!
Die Vollständige Fehlermeldung lautete zuvor:
May 29 12:42:09 pml125.home.tachtler.net salt-minion[19553]: [ERROR ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
Master: Kommunikation überprüfen
Nachfolgender Befehl über die Salt-Befehlseingabe, auf dem MASTER
ausgeführt, überprüft, ob die Kommunikation zwischen dem MASTER
und dem MINION(s)
erfolgreich zustande kommt und gibt für alle definierten MINION(s)
deren Salt-Version zurück:
# salt '*' test.version pml125.home.tachtler.net: 2015.5.10
Nützliche Befehle
Befehl | Beschreibung |
---|---|
salt-key --gen-keys=[hostname] | Erstellen eines Schlüsselpaares. |
salt-key --list all | Auflistung aller dem MASTER bekannten Schlüssel |
salt-key --list=[value] | Auflistung aller dem MASTER bekannten Schlüssel aus den Bereichen pre , un , acc und rej |
salt-key -A | Akzeptieren aller noch nicht akzeptierten Schlüssel |
salt-key --accept=[keyname] | Akzeptieren des Schlüssel mit dem Namen [keyname] |
salt-key -R | Zurückweisen aller noch nicht akzeptierten Schlüssel |
salt-key --reject=[keyname] | Zurückweisen des noch nicht akzeptierten Schlüssel mit dem Namen [keyname] |
salt-key -F | Fingerprint aller Schlüssel |
salt-key --finger=[keyname] | Fingerprint des Schlüssel mit dem Namen [keyname] |
salt-key -D | Löschen aller Schlüssel |
salt-key --delete=[keyname] | Löschen des Schlüssel mit dem Namen [keyname] |
salt '*' test.version | Anzeige der Salt-Version aller erreichbaren MINION(s) |
salt '[hostname]' test.version | Anzeige der Salt-Version des MINION mit dem Namen [hostname] |