2017-12-05 6 views
1

Ich überlege, auf salt (derzeit ansible) zu verschieben, um eine Reihe von eigenständigen IoT-Geräten (Raspberry Pi in der Praxis) zu verwalten.Wie man einen Schergen nahtlos umbenennt?

Die Geräte würden mit einem generischen Image installiert werden, zu dem ich die Installation von salt (clientseitig) sowie eine Konfigurationsdatei hinzufügen würde, die auf salt-master verweist, die Zustandsdateien zum Verbrauch bereitstellen soll die Minions.

Die Statusdateien enthalten eine HTTP-Abfrage für einen Namen, der dann auf das Gerät angewendet wird (als sein Hostname). Das offensichtliche Problem ist, dass sich der Diener zu diesem Zeitpunkt bereits mit salt-master unter dem vorherigen (generischen) Namen registriert hat.

Wie mit einer solchen Situation umzugehen? Insbesondere: Wie wird der neue Hostname an salt-master weitergegeben? (nur das Ändern des Hostnamens und des Neustarts hat nicht geholfen, ich nehme an, der Hostname ist auf dem Server mit der ID des Minions gebündelt). auf dem Host-Name ist

Antwort

1

Ihre Minion ID

Die allgemeinere Frage wäre, ob salt das richtige Produkt für eine solche situatiuon ist während der Installation (unter anderem, wo der Zustand des Untergebener Einstellung seinen Namen ändert,) auf der Basis . Wenn du den Hostnamen änderst, nachdem du den Salminion installiert hast, ändert sich die Minion ID nicht.

Die Minion-ID wird in /etc/salt/minion_id angegeben. Wenn Sie die ID Minion ändern:

  • Die Minion sich mit der neuen ID zum Master identifizieren und stoppt an die alte ID hören.
  • Der Master erkennt die neue Minion-ID als neuen Minion und zeigt einen neuen Schlüssel in Unaccepted Keys an.
  • Nachdem Sie den Schlüssel auf dem Master akzeptiert haben, können Sie den Minion nur mit dem neuen Schlüssel verwenden. Der alte Schlüssel wird immer noch auf dem Master akzeptiert, funktioniert aber nicht mehr.

ich mit zwei Lösungen für Ihre Situation kommen können:

  1. Verwenden salz ssh Ihre Schergen Bereitstellung. Der Master verbindet sich mit Ihrem Raspberry PI mit SSH. Es wird den korrekten Hostnamen einrichten, installieren und konfigurieren von salt-minion. Nachdem dies erledigt ist, verbindet sich dein Diener mit der richtigen ID zum Master. Aber das erfordert, dass der Master weiß, wann und wo ein Diener verfügbar ist ...
  2. Sie erwähnten den Zustand, in dem der Hostname eingestellt ist. Ändere die Diener-ID und starte den Diener-Dienst im selben Zustand neu. Dies wird die Minion ID ändern, aber du musst den neuen Schlüssel später akzeptieren. Beachte, dass der Diener niemals einen Status als erfolgreich beendet melden wird, wenn du den Salz-Diener-Dienst in ihm neu startest.
+0

Vielen Dank. Die erste Lösung ist einer der Gründe, warum ich erwäge, von ansible zu migrieren (die Notwendigkeit zu wissen, wie man mit den Kunden in Kontakt kommt). Die zweite Soulution ist sehr interessant - auch wenn das bedeutet, dass danach auf dem Server aufgeräumt wird (um die alten Schlüssel zu löschen und die neuen zu akzeptieren). – WoJ

Verwandte Themen