Installieren und Konfigurieren von Salt Master- und Minion-Servern unter Ubuntu 14.04

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 vonsudokonfiguriert 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 Ihressudoverwenden 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-bootstrapgeben, 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-bootstrapzu 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 vonpipabgerufen 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-bootstrapwird 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-bootstrapverwenden, 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 vonsudoin 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 Ihressudobei 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-minioninstallieren. 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.

Related