Skript / Programm, das auf Benutzereingaben wartet, Protokolle für die Ausgabe liest und Broadcast sendet

473
ARL

Bei Code-Bereitstellungen besteht das Risiko von Dienst- / Systemfehlern. Das Network Operations Center überwacht Warnungen von Servern. Wenn die Warnung als Ergebnis einer Codeimplementierung auftritt, ist dies möglicherweise nicht zu befürchten. Wenn jedoch niemand auf dem Server arbeitet, ist die Warnung eindeutig ein Grund zur Besorgnis.

Derzeit informieren wir das NOC, wenn wir an einem Server arbeiten. Ich habe mich gefragt, ob es bereits ein Skript / Programm gibt, das Eingaben auf einem bestimmten Server überwachen kann, und wenn eine bestimmte Eingabe empfangen wird, um die Eingabe zu senden, die zusammen mit dem Server empfangen wurde, an den sie an einen angegebenen Server gesendet wurde.

Nehmen wir an, ich arbeite an Server 'x' und führe Marionettenagent aus

Könnte ein im Hintergrund ausgeführter Prozess so konfiguriert sein, dass er auf eine Benutzereingabe am 'Marionettenagenten' am Terminal wartet und dann eine Nachricht an einen bestimmten Server sendet, wenn diese Eingabe vorhanden ist?

Die Idee wäre, eine Liste allgemeiner Befehle hinzuzufügen, die vom Bereitstellungsteam verwendet werden, auf die dieser Prozess wartet und Broadcasts für alle sendet.

Es wäre auch nützlich, wenn Sie einen vordefinierten Ort wie ein Protokoll für diesen Befehl (in diesem Fall ein Marionettenagent) nach einer Beendigungsnachricht wie „Marionette erfolgreich abgeschlossen" durchsuchen könnten, und in dem Fall, dass er das gefunden hat, senden Sie ein zusätzliche Übertragung an den angegebenen Server.

Ich bin mir sicher, dass es mit genügend Aufwand erstellt werden könnte, nur um zu wissen, ob es so etwas gibt, das für unsere Bedürfnisse konfiguriert werden kann.

Vielen Dank

1
Willkommen bei Super User. Leider sind wir kein Code-Writing-Service. Anstatt einfach nach Code für eine bestimmte Aufgabe zu fragen, zeigen Sie uns, was Sie bisher versucht haben (einschließlich des Codes, den Sie derzeit verwenden) und wo Sie stecken bleiben, damit wir Ihnen bei Ihrem spezifischen Problem helfen können. Fragen, die nur nach Code fragen, sind zu umfangreich und wahrscheinlich [gehalten oder geschlossen] (http://stackoverflow.com/help/closed-questions). Bitte lesen Sie [Wie stelle ich eine gute Frage?] (Http://superuser.com/help/how-to-ask). DavidPostill vor 9 Jahren 0
Hallo David. Ich glaube nicht, dass ich jemanden gebeten habe, Code für mich zu schreiben. Ich habe nur gefragt, ob jemand von einem Skript oder einem Tool wusste, das diese Funktion bereits ausführt. Ich habe versucht, Google zu durchsuchen, aber dies ist eine der Situationen, in denen der Trick darin besteht, die richtige Frage zu kennen, um zu finden, wonach Sie suchen. Wenn so etwas nicht existiert, kann ich mich an RnD wenden. Wenn es darum geht, frage ich im Wesentlichen, in die richtige Richtung zu weisen. Vielen Dank für den Rat. Ich werde mir das merken. ARL vor 9 Jahren 0
"Ich wurde nur gefragt, ob jemand von einem Skript oder einem Werkzeug wusste, das diese Funktion bereits ausführt." - Lernmaterial wie das Nachfragen nach Skripts ist nicht Thema. Ich persönlich probiere eine Suchmaschine oder lese ein Buch und lerne die Fähigkeiten, um die Aufgabe selbst zu erledigen Dave vor 9 Jahren 0
"Ich habe nur gefragt, ob jemand von einem Skript oder einem Werkzeug wusste, das diese Funktion bereits ausführt" - das ist kein Thema. Fragen, die Produkt-, Service- oder Lernmaterialempfehlungen suchen, sind nicht thematisch. Siehe [Zum Thema] (http://superuser.com/help/on-topic). Versuchen Sie http://softwarerecs.stackexchange.com/, aber lesen Sie zuerst [Was ist erforderlich, damit eine Frage "genug Informationen enthält"] (http://meta.softwarerecs.stackexchange.com/questions/336/what-is- Erforderlich-für-eine-Frage-enthalten-genug-Informationen). DavidPostill vor 9 Jahren 0

1 Antwort auf die Frage

0
spuder

Es gibt wahrscheinlich kein echtes Werkzeug, das das tut, wonach Sie suchen, denn das Paradigma, spezielle Schneeflocken zu haben, in die Sie ssh / rdp einsetzen, verblasst, weil es nicht skaliert wird. Sie sollten sich Ihre Server als Vieh vorstellen, nicht als Haustiere.

Anstatt in Ihren Rechner zu wechseln und zu laufen puppet apply; Es ist besser, einen Puppenserver zu verwenden und parametrisierte Klassen zu nutzen, um zu definieren, welcher Build freigegeben werden soll.

Klassifizierer für den Puppenmaster für
externe Knoten

Idealerweise sollten Sie zwei bis vier nahezu identische Server mit jeweils identischen Konfigurationen haben. (Produktion + Stufe + Qa + Dev). Auf diese Weise können Sie testen, ob Ihre Bereitstellung auf einem Computer ordnungsgemäß funktioniert, bevor Sie die Bereitstellung in die Produktion übertragen.

Wenn für Ihre Implementierungen mehrere Schritte erforderlich sind, die nicht in Ihrem Modul verkapselt werden können (z. B. Entfernen aus Load Balancer, Ändern der Datenbank, ect ...). Dann sollten Sie Ihre Puppenläufe mit einem Werkzeug erweitern, das diese Schritte nacheinander ausführen kann.

CloudSlang Orchestration Management
Capistrano Deployment Automation
RunDeck Gui, die Jobs / Aufgaben definieren

Andere Tools, die bei der Bereitstellung helfen können.

Consul Service Discovery + Berichterstellung

Letztendlich klingt es so, als wollten Sie eine Feedback-Schleife, die Ihnen mitteilt, ob eine Bereitstellung erfolgreich war. Der Puppenspieler und der Vorarbeiter können das beide. Sie können den Status auch an eine REST-Basisdatenbank melden.

InflxDB
Iron.io

Verwenden Sie dann ein Dashboard-Stilwerkzeug, um die letzten x Ergebnisse anzuzeigen.

schneidiges
Tipboard

Oder Sie könnten wie ein Slack direkt in einen Chat-Raum gehen .

Sie haben erwähnt, dass Sie Protokolle ansehen, um die Ausgabe von Befehlen zu finden. Sie können eine Protokollüberwachung einrichten, die Meldungen in einem Dashboard anzeigen oder sogar Warnungen senden, wenn eine bestimmte Zeile protokolliert wird.

Hier finden Sie eine Dokumentation zum Einrichten eines ELK-Stacks (Elasticsearch, Logstash, Kibana).

Andere Ressourcen

https://sysadmincasts.com/episodes/47-zero-downtime-deployments-with-ansible-part-4-4

http://aws.amazon.com/codedeploy/

Spuder, vielen Dank für Ihre wertvollen Beiträge. Ich habe gerade in einer neuen Position angefangen und lerne gerade die Seile. Ich bin mir sicher, dass die von Ihnen bereitgestellten Ressourcen sehr nützlich sein werden. Danke noch einmal! ARL vor 9 Jahren 0