Einführung
SaltStack ist ein leistungsstarkes, flexibles und leistungsstarkes Konfigurationsmanagement- und Remote-Ausführungssystem. Es kann verwendet werden, um Ihre Infrastruktur von einem zentralen Ort aus zu verwalten und gleichzeitig manuelle Wartungsschritte zu minimieren. Weitere Informationen zu den mit SaltStack verbundenen Terminologien und Tools finden Sie unterthis guide.
In diesem Artikel konzentrieren wir uns darauf, einen Salt-Masterserver für die Verwaltung Ihrer Infrastruktur einzurichten. Wir werden auch zeigen, wie Sie den Salt Minion-Daemon auf anderen Computern installieren, um sie mit Salt zu verwalten. Wir werden zwei Ubuntu 14.04-Server verwenden, um diese Schritte zu demonstrieren.
Voraussetzungen
Zu Beginn sollten Sie mindestens zwei Ubuntu 14.04-Serverinstanzen haben. Diese sollten einen Nicht-Root-Benutzer haben, der mit den Berechtigungen vonsudo
konfiguriert ist. Sie können lernen, wie Sie diese Benutzer erstellen und konfigurieren, indem Sie unserenUbuntu 14.04 initial server setup guide folgen.
Wenn Sie bereit sind, melden Sie sich bei dem Server an, den Sie als Salt-Master mit dem Benutzer Ihressudo
verwenden möchten. Wir werden diese Maschine zuerst konfigurieren.
Installieren Sie den Master Daemon
Der Salt Master Daemon kann unter Ubuntu 14.04 auf verschiedene Arten installiert werden. Das Folgende ist ein kurzer Überblick über die Vor- und Nachteile der einzelnen Methoden:
-
Ubuntu SaltStack PPA: Verwendet die nativen Ubuntu-Paketverwaltungstools, um die erforderliche Software zu installieren und zu aktualisieren. Dies ist die einfachste Installationsmethode, aber wie zum Zeitpunkt der Erstellung dieses Dokuments sind die Pakete möglicherweise erheblich veraltet.
-
Salt-Bootstrap: Dieses Bootstrapping-Skript versucht, eine universellere Methode zum Installieren und Konfigurieren von Salt bereitzustellen. Es kann versuchen, die verfügbaren nativen Softwaretools zu verwenden. Dies bedeutet, dass möglicherweise weiterhin versucht wird, die Installation von der oben genannten PPA durchzuführen. Es bietet auch einfachen Zugriff auf die Entwicklungsversionen von Salt.
Im Folgenden wird die Installation mit der Ubuntu PPA-Methode beschrieben. Wir werden auch Anweisungen zur Verwendung des Skriptssalt-bootstrap
geben, um sowohl die stabile als auch die Entwicklungsversion von Salt Master zu installieren.
Sie entscheiden selbst, welche Option Ihren Anforderungen am besten entspricht. Wenn Sie auf Probleme stoßen, sind möglicherweise Fehlerbehebungen in der Entwicklungsversion verfügbar. Es besteht jedoch auch die Möglichkeit, dass neu veröffentlichte Fehler auftreten.
Installieren Sie die stabile Version von der offiziellen PPA
Die Installation von Ubuntu PPA aus ist die einfachste Installationsmethode.
Zu Beginn müssen Sie die SaltStack-PPA zu dem Server hinzufügen, den Sie als Master verwenden. Sie können dies tun, indem Sie Folgendes eingeben:
sudo add-apt-repository ppa:saltstack/salt
Sobald Sie die PPA-Hinzufügung bestätigt haben, wird sie Ihrem System hinzugefügt. Um die neuen verfügbaren Pakete zu indizieren, müssen Sie Ihren lokalen Paketindex aktualisieren. Anschließend können Sie die entsprechende Software installieren:
sudo apt-get update
sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc
Im obigen Befehl haben wir sowohl die Salt Master- als auch die Minion Daemons installiert. Auf diese Weise können wir unseren Master-Server auch mit Salt steuern. Wir haben auchsalt-ssh
undsalt-cloud
installiert, was uns mehr Flexibilität bei der Verbindung und Steuerung von Ressourcen gibt. Das Dokumentationspaket ist ebenfalls enthalten.
An diesem Punkt sind Sie mit der Salt Master-Installation fertig. Springen Sie zuinitial master configuration section, um Ihre neuen Dienste zum Laufen zu bringen.
Installieren Sie die stabile Version mit Salt-Bootstrap
Eine Alternative zur direkten Verwendung von PPA besteht darin, die stabile Version mit dem Skriptsalt-bootstrap
zu installieren. Dies kann von der SaltStack-Website heruntergeladen werden. Ein Grund, warum Sie diese Methode zum Installieren des stabilen Systems über die oben beschriebene Methode verwenden können, besteht darin, dass einige seiner Abhängigkeiten vom Paketmanager vonpip
abgerufen werden. Dadurch erhalten Sie möglicherweise aktuellere Versionen einiger Salt-Abhängigkeiten.
Wechseln Sie zunächst in Ihr Ausgangsverzeichnis oder an einen anderen Ort, an dem Sie über Schreibberechtigungen verfügen. Wir könnencurl
verwenden, um das Bootstrap-Skript herunterzuladen. Wir werden den Anweisungen auf densalt-bootstrap
GitHub page folgen und den Ausgabenamen verwenden, den sie aus Gründen der Übersichtlichkeit ausgewählt haben:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
Schauen Sie sich an dieser Stelle das Skript an, um sicherzustellen, dass es nichts tut, was Sie nicht gutheißen:
less ~/install_salt.sh
Das Skriptsalt-bootstrap
wird vom SaltStack-Team verwaltet. Sie sollten jedoch immer den Inhalt externer Skripte überprüfen, bevor Sie sie ausführen.
Wenn Sie mit den ausgeführten Aktionen zufrieden sind, führen Sie das Skript aus, indem Sie es ansh
übergeben. Wir werden das Flag-P
verwenden, damit das Skript bei Bedarfpip
als Abhängigkeitsquelle verwenden kann. Ohne dieses Flag schlägt die Installation wahrscheinlich fehl. Wir müssen auch das-M
-Flag einfügen, damit der Salt-Master-Daemon installiert wird. Alle Salt-Hilfsprogramme werden automatisch einbezogen.
Der vollständige Befehl, den wir benötigen, lautet:
sudo sh install_salt.sh -P -M
An diesem Punkt sind Sie mit der Salt Master-Installation fertig. Springen Sie zuinitial master configuration section, um Ihre neuen Dienste zum Laufen zu bringen.
Installieren Sie die Entwicklungsversion mit Salt-Bootstrap
Wir können auch das Skriptsalt-bootstrap
verwenden, um eine Entwicklungsversion von Salt mitgit
zu installieren. Dies kann hilfreich sein, um Zugriff auf neuere Funktionen und vor allem auf neuere Fehlerbehebungen zu erhalten, die in der PPA-Version der Software möglicherweise nicht verfügbar sind.
Das benötigte Skript ist das gleichesalt-bootstrap
-Skript, das wir oben verwendet haben. Nur die von uns verwendeten Optionen sind unterschiedlich. Wenn Sie das Skript noch nicht haben, laden Sie es in Ihr Ausgangsverzeichnis herunter:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
Schauen Sie sich das Skript noch einmal an, um sicherzustellen, dass Sie mit den auszuführenden Vorgängen einverstanden sind:
less ~/install_salt.sh
Wenn Sie zufrieden sind, können Sie das Skript ansh
übergeben, um es auszuführen. Wir werden das Flag-P
einfügen, um das Skript anzuweisen, bei Bedarf Abhängigkeiten mitpip
abzurufen. Das Flag-M
ist enthalten, um anzugeben, dass der Salt-Master installiert werden soll. Wir beenden den Befehl mitgit develop
, um dem Skript mitzuteilen, dass wirSaltStack GitHub repo verwenden möchten, um die neueste Entwicklungsversion anstelle von Ubuntu PPA zu installieren.
Der vollständige Befehl, den wir benötigen, lautet:
sudo sh install_salt.sh -P -M git develop
An diesem Punkt sind Sie mit der Salt Master-Installation fertig. Als Nächstes konfigurieren wir den Master, um die neuen Dienste zum Laufen zu bringen.
Erstkonfiguration des Masters
Als nächstes müssen wir den Salt Master konfigurieren.
Erstellen Sie die Salt-Verzeichnisstrukturen
Zunächst erstellen wir die Konfigurationsverwaltungsverzeichnisstruktur, in der der Salt-Master nach verschiedenen Dateien sucht. Diese befinden sich standardmäßig alle im Verzeichnis/srv
. Wir brauchen/srv/salt
und/srv/pillar
, um loszulegen. Erstellen Sie sie jetzt, indem Sie Folgendes eingeben:
sudo mkdir -p /srv/{salt,pillar}
Ändern Sie die Salt Master-Konfiguration
Als nächstes werden wir die Salt Master Konfigurationsdatei anpassen. Öffnen Sie die Datei mit den Berechtigungen vonsudo
in Ihrem Texteditor:
sudo nano /etc/salt/master
Als erstes setzen wir dasfile_roots
-Wörterbuch. Dies legt im Wesentlichen die Speicherorte fest, an denen der Salt-Master nach Anweisungen für das Konfigurationsmanagement sucht. base
gibt die Standardumgebung an. Zwei der zuvor erstellten Verzeichnisse werden zu diesem Zweck verwendet. Die/srv/salt
werden für vom Administrator erstellte Anweisungen verwendet, und die/srv/formulas
werden für vorgefertigte Konfigurationen reserviert, die von externen Quellen heruntergeladen wurden:
/etc/salt/master
file_roots:
base:
- /srv/salt
- /srv/formulas
Note
[.note] # Es ist wichtig, die angegebenen Formate genau zu replizieren. Salt verwendet Konfigurationsdateien im YAML-Stil. Diese erfordern strikte Beachtung von Abstand und Einrückung, damit der Dämon die Werte korrekt interpretiert.
#
Als Nächstes richten wir das Stammverzeichnis für unsere Salt-Säulenkonfiguration ein. Dies sieht der obigen Konfiguration sehr ähnlich und verwendet das dritte Verzeichnis, das wir erstellt haben:
/etc/salt/master
pillar_roots:
base:
- /srv/pillar
Dies ist alles, was wir zu diesem Zeitpunkt für den Master konfigurieren müssen. Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Ändern Sie die Salt Minion-Konfiguration
Außerdem haben wir den Salt Minion-Daemon auf diesem Computer installiert, damit wir ihn mit den übrigen Infrastrukturrichtlinien in Einklang bringen können. Öffnen Sie als Nächstes die Salt Minion-Konfiguration mit den Berechtigungen vonsudo
:
sudo nano /etc/salt/minion
Die einzige Änderung, die wir vornehmen müssen, ist die Angabe des Masters, mit dem sich dieser Diener verbinden soll. In diesem Fall sollte der Minion eine Verbindung zum Master-Prozess herstellen, der auf demselben Computer ausgeführt wird. Setzen Sie den Schlüsselmaster
gleich der lokalen Loopback-Adresse127.0.0.1
, damit der Diener die Verbindung korrekt herstellen kann:
/etc/salt/minion
master: 127.0.0.1
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Starten Sie die Prozesse neu
Jetzt müssen wir sowohl die Salt-Master- als auch die Minion-Daemons neu starten, um unsere neuen Konfigurationen zu verwenden:
sudo restart salt-master
sudo restart salt-minion
Beide Daemons werden unter Berücksichtigung der beschriebenen Konfigurationsänderungen neu gestartet.
Akzeptiere den Minion Key
Nach dem Neustart kontaktierte der Salt-Minion-Daemon automatisch den Salt-Master mit seinen Anmeldeinformationen. Als Administrator müssen Sie lediglich den Schlüssel des Minions überprüfen und akzeptieren, um die Kommunikation zu ermöglichen.
Führen Sie zunächst alle Schlüssel auf, über die der Salzmeister Kenntnisse hat:
sudo salt-key --list all
Sie sollten so etwas sehen. Diesaltmaster
unten sollten mit der Salt Minion ID Ihres Systems übereinstimmen. Dies ist normalerweise der Hostname Ihres Servers:
OutputAccepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:
Wie Sie sehen, hat unser Salt Minion seinen Schlüssel an den Meister geschickt, aber er wurde noch nicht angenommen. Aus Sicherheitsgründen werden vor dem Akzeptieren des Schlüssels zwei Befehle ausgeführt.
Wir müssen sicherstellen, dass die Ausgabe davon (die uns den Fingerabdruck des Schlüssels mitteilt, den der Salt Minion generiert hat):
sudo salt-call key.finger --local
Outputlocal:
24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
Entspricht dem hier gefundenen Fingerabdruck (dem Fingerabdruck des Schlüssels, den der Salt Master annehmen soll). Ersetze die Minion ID hier:
sudo salt-key -f saltmaster
OutputUnaccepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
Sobald Sie sich vergewissert haben, dass diese Werte identisch sind, können Sie den Schlüssel akzeptieren, indem Sie Folgendes eingeben:
sudo salt-key -a saltmaster
Nachdem Sie den Schlüssel akzeptiert haben, können Sie feststellen, dass der Schlüssel in den Bereich "Akzeptierte Schlüssel" verschoben wurde:
sudo salt-key --list all
OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Jetzt können Sie testen, ob der Salt Master- und der Minion-Prozess korrekt kommunizieren, indem Sie Folgendes eingeben:
sudo salt '*' test.ping
Sie sollten eine Nachricht erhalten, die darauf hinweist, dass die Integritätsprüfung erfolgreich war:
Outputsaltmaster:
True
Ihr Salt-Master-Server ist jetzt konfiguriert. Wir können weiter demonstrieren, wie ein zusätzlicher Salt Minion-Server eingerichtet wird.
Installieren Sie einen separaten Minion
Nachdem unser Salt-Masterserver nun reibungslos funktioniert, können wir Ihnen zeigen, wie Sie einen neuen Server als Minion unter die Kontrolle von Salt bringen.
Auch hier gibt es mehrere Möglichkeiten, die erforderliche Software zu installieren, jedochyou should match the method used for the master server. Dadurch wird sichergestellt, dass zwischen Salt Master und Minion keine Versionsinkongruenz besteht. Salt Minions, die aktueller sind als ihr Master-Server, können ein unvorhersehbares Verhalten aufweisen.
Wenn Sie bereit sind, melden Sie sich mit dem Benutzer Ihressudo
bei Ihrem zweiten Server an.
Installieren Sie den Stable Master von der offiziellen PPA
Wenn Sie Ihren Salt-Master-Server von der SaltStack-PPA installiert haben, können Sie dieselbe PPA auf Ihrem Ubuntu-Minion-Server hinzufügen:
sudo add-apt-repository ppa:saltstack/salt
Dieses Mal müssen wir nur die ausführbare Datei vonsalt-minion
installieren. Aktualisieren Sie Ihren lokalen Paketindex, nachdem Sie den PPA hinzugefügt haben, und installieren Sie die Software, indem Sie Folgendes eingeben:
sudo apt-get update
sudo apt-get install salt-minion
Ihr Salt Minion sollte jetzt installiert sein. Fahren Sie mit dem Abschnitt überconfiguring your minion fort.
Installieren Sie die stabile Version mit Salt-Bootstrap
Wenn Sie die stabile Version mitsalt-bootstrap
installiert haben, können Sie dasselbe Skript auf Ihren Minion-Computer herunterladen:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
Wir werden das Skript fast genauso aufrufen, wie wir es beim Salt Master getan haben. Der einzige Unterschied besteht darin, dass wir das-M
-Flag weglassen, da wir die Master-Tools und Daemons nicht installieren müssen:
sudo sh install_salt.sh -P
Ihr Salt Minion sollte jetzt installiert sein. Fahren Sie mit dem Abschnitt überconfiguring your minion fort.
Installieren Sie die Entwicklungsversion mit Salt-Bootstrap
Wenn Sie die aktuelle Entwicklungsversion mitsalt-bootstrap
auf dem Salt-Master installiert haben, können Sie den Companion-Minion-Prozess mit demselben Skript installieren. Laden Sie es auf Ihren Diener herunter, indem Sie Folgendes eingeben:
cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh
Der Befehl, den wir zum Installieren des Minions benötigen, ist fast derselbe, den wir auf dem Master verwendet haben. Der einzige Unterschied besteht darin, dass wir das-M
-Flag weglassen, um anzuzeigen, dass wir die Salt Master-Tools und den Daemon nicht benötigen:
sudo sh install_salt.sh -P git develop
Wenn Sie fertig sind, fahren Sie mit der Konfiguration Ihrer Minion-Instanz fort.
Konfigurieren Sie den Minion
Nachdem wir den Minion installiert haben, können wir ihn für die Kommunikation mit unserem Salzmeister konfigurieren.
Holen Sie sich den Salt Master Public Key Fingerprint
Bevor wir beginnen, sollten wir den Fingerabdruck des Salt Masters nehmen. Wir können dies zu unserer Minion-Konfiguration hinzufügen, um die Sicherheit zu erhöhen.
Geben Sie auf Ihrem Salt-Masterserver Folgendes ein:
sudo salt-key -F master
Die Ausgabe sollte ungefähr so aussehen:
OutputLocal Keys:
master.pem: 12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97
master.pub: 7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92
Accepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
Der Wert desmaster.pub
-Schlüssels im Abschnitt „Lokale Schlüssel“ ist der gesuchte Fingerabdruck. Kopieren Sie diesen Wert, um ihn in unserer Minion-Konfiguration zu verwenden.
Ändern Sie die Minion-Konfiguration
Öffnen Sie auf Ihrem neuen Salt Minion die Minion-Konfigurationsdatei mit den Berechtigungen vonsudo
:
sudo nano /etc/salt/minion
Wir müssen den Ort angeben, an dem sich der Salzmeister befindet. Dies kann entweder ein auflösbarer DNS-Domänenname oder eine IP-Adresse sein:
/etc/salt/minion
master: ip_of_salt_master
Setzen Sie als Nächstes die Optionmaster_finger
auf den Fingerabdruckwert, den Sie vor kurzem vom Salt-Master kopiert haben:
/etc/salt/minion
master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92'
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Starten Sie nun den Salt Minion-Daemon neu, um Ihre neuen Konfigurationsänderungen zu implementieren:
sudo restart salt-minion
Der neue Diener sollte sich unter der angegebenen Adresse an den Salt Master Service wenden. Es sendet dann seinen Schlüssel, damit der Master ihn akzeptiert. Um den Schlüssel sicher zu überprüfen, müssen Sie den Fingerabdruck des Schlüssels auf dem neuen Minion-Server überprüfen.
Geben Sie dazu Folgendes ein:
sudo salt-call key.finger --local
Sie sollten eine Ausgabe sehen, die so aussieht:
Outputlocal:
32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be
Sie müssen überprüfen, ob der vom Masterserver empfangene Schlüsselfingerabdruck mit diesem Wert übereinstimmt.
Akzeptiere den Minion Key auf dem Salt Master
Zurück auf Ihrem Salt-Master-Server müssen wir den Schlüssel akzeptieren.
Stellen Sie zunächst sicher, dass auf dem Master ein nicht akzeptierter Schlüssel wartet:
sudo salt-key --list all
Sie sollten einen neuen Schlüssel im Abschnitt "Nicht akzeptierte Schlüssel" sehen, der Ihrem neuen Diener zugeordnet ist:
OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:
Überprüfen Sie den Fingerabdruck des neuen Schlüssels. Ändern Sie den hervorgehobenen Teil unten mit der Diener-ID, die Sie im Abschnitt "Nicht akzeptierte Schlüssel" sehen:
sudo salt-key -f saltminion
Die Ausgabe sollte ungefähr so aussehen:
OutputUnaccepted Keys:
saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be
Wenn dies mit dem Wert übereinstimmt, den Sie vom Minion bei der Ausgabe des Befehlssalt-call
erhalten haben, können Sie den Schlüssel sicher akzeptieren, indem Sie Folgendes eingeben:
sudo salt-key -a saltminion
Der Schlüssel sollte nun zum Abschnitt "Akzeptierte Schlüssel" hinzugefügt werden:
sudo salt-key --list all
OutputAccepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Testen Sie, ob Sie Befehle an Ihren neuen Begleiter senden können, indem Sie Folgendes eingeben:
sudo salt '*' test.ping
Sie sollten Antworten von beiden Minion-Daemons erhalten, die Sie konfiguriert haben:
Outputsaltminion:
True
saltmaster:
True
Fazit
Sie sollten jetzt einen Salt-Master-Server zur Steuerung Ihrer Infrastruktur konfigurieren. Wir haben auch die Einrichtung eines neuen Minion-Servers durchlaufen. Sie können das gleiche Verfahren für zusätzliche Salt Minions befolgen. Dies sind die Grundkenntnisse, die Sie benötigen, um eine neue Infrastruktur für das Salzmanagement einzurichten.