Ich muss ein Skript schreiben, das meinen Server von einer neuen Ubuntu-Server-Installation erstellt. Unter anderem Apache und PHP muss MySQL installiert werden. Das einzige Problem hierbei ist, dass bei der Installation von MySQL mit apt-get irgendwann ein Dialogfeld angezeigt wird, in dem ich mein root-Passwort eingeben kann. Das heißt, menschliche Interaktion ist erforderlich.
Wie kann ich diesen Bildschirm während der Installation umgehen und menschliche Interaktion vermeiden, während ich MySQL weiterhin mit apt-get installiere?
Antworten:
Sie müssen die Debconf-Datenbank voreinstellen. debconf muss zuerst installiert werden, bevor Sie dies versuchen.
Die Version von MySQL und Ubuntu könnte die Zeile ändern:
Zum Beispiel haben Sie dies stattdessen benötigt:
quelle
mysql -u root -p
Während FAI und ähnliche Systeme in einer Unternehmensumgebung hilfreich sind (und er sollte sich damit auskennen), sind sie leider kein Allheilmittel.
Was ist zum Beispiel, wenn er auf Remotecomputern arbeitet, z. B. auf gehosteten, gemieteten Servern, gemeinsam genutzten Servern ohne vertrauenswürdiges oder dediziertes Netzwerk oder in einer Cloud-Umgebung wie EC2? Dort funktioniert kein PXE-Netboot. Marionette und Koch scheinen jedoch allgemeinere Werkzeuge zu sein, die ihm helfen könnten.
Auf einem bereits eingerichteten System können Sie die korrekten Werte aus der debconf-Datenbank abrufen. Mit dieser Technik können Sie das Ganze in einem einzigen Shell-Skript zusammenfassen. Zum Beispiel aus /var/cache/debconf/passwords.dat (beachten Sie, dass zusätzliche Einträge unter Debian und 5.1 und Ubuntu nicht schaden):
Eine andere, vielleicht einfachere Methode: (Sammeln Sie Antworten aus debconf-get-selections oder debconf-show aus dem Paket debconf-utils.)
Nachdem Sie debconf-set-selections ausgeführt haben, überprüfen Sie Ihre Antworten: cat /var/cache/debconf/passwords.dat
Stellen Sie beim Testen sicher, dass Sie alle Datenbanken (insbesondere die mysql-Datenbank, in der diese gespeichert ist) entfernen und bereinigen und die Konfigurationsdatenbank reparieren, falls sie beschädigt wurde:
Ein paar Tipps dazu: 1) Sie MÜSSEN das seen-Flag und das Passwort _again haben. 2) Sie dürfen das Passwort nicht in Anführungszeichen setzen. Es wird ohne Anführungszeichen in eine MySQL-Abfrage eingegeben, sodass Sie es bei Bedarf selbst angeben müssen. Das bedeutet auch keine Leerzeichen (glaube ich). 3) Wenn Sie Probleme haben, führen Sie die Voreinstellung von Hand durch und führen Sie dann die MySQL-Installation direkt selbst aus (in einem normalen Terminal / tty) und sehen Sie, was Debconf Ihnen sagt. Dort werden Ihnen Warnungen und Fehler angezeigt.
quelle
Wenn Sie mehrere Server haben, die Sie neu erstellen müssen, empfehle ich Ihnen dringend, sich etwas wie Puppet anzuschauen, anstatt ein Shell-Skript zu schreiben. Puppet hat eine beschreibende Sprache, so dass Sie definieren, wie das System aussehen soll, und nicht, wie es dorthin gelangen soll. Der Pakettyp verfügt über eine Antwortdatei-Option, mit der Sie die debconf-Antworten in Stevens Antwort definieren können.
quelle
Darf ich Ihnen auch vorschlagen, den Server-Staging-Prozess vom Roheisen zu automatisieren?
FAI verfügt heutzutage über Profile, um die meisten wichtigen Debian-basierten Systeme, einschließlich Ubuntu, aus dem Netzwerk zu installieren. Dies ist natürlich nur eine Erweiterung der Marionettenantwort, die eine Erweiterung der Debconf-Antwort ist.
Die Kombination aus Staging von FAI und anschließendem Anpassen von Puppets an Serverrollen (wobei Puppets die richtigen Tools für Ihr System verwenden, z. B. Debconf für Debian (-likes), eher automatisch) ist heutzutage recht beliebt und sollte es auch nicht sein Es ist schwierig, Beispiele zu finden, die genau Ihren Vorstellungen entsprechen.
Ein wichtiger zusätzlicher Vorteil einer Staging / Konfigurationsserver zu haben , ist , dass es auch eine logische Ort , um Ihre Konfiguration Versionskontrolle zu halten, zB mit git (die den Vorteil der Namensgebung Repository Staaten von Prüfziffer, so dass Sie sicher gegen Korruption solange Sie die richtigen Prüfsummen notieren), für einen wirklich sauberen und reproduzierbaren Prozess.
quelle
Siehe auch:
/programming/1202347/simple-bash-script-to-install-mysql-need-some-help
quelle