Frage Übergeben Sie Standardantworten auf apt-get Paketinstallationsfragen?


Ich versuche, ein Konfigurationsskript für neue Server zu schreiben, und einer der ersten Schritte besteht darin, eine Reihe von erforderlichen Paketen wie MySQL, phpMyAdmin usw. zu installieren apt-get install Wenn dpkg jedoch versucht, sie zu konfigurieren, werden Sie nach einigen Optionen gefragt, wie zum Beispiel dem MySQL-Root-Passwort, den phpMyAdmin-Passwörtern, dem zu verwendenden Server usw.

Da ich dieses Skript wahrscheinlich an Kollegen weitergeben werde, die wahrscheinlich die Aufforderungen nicht lesen, und meinen Wunsch, es einfach zu starten und wegzugehen, Ich würde gerne wissen, wie man eine Reihe von "Standard" Antworten / Werten eingibt, damit es verwendet werden kann. Dies kann Benutzernamen / Kennwörter / andere dynamische Werte enthalten, die über die Befehlszeile übergeben werden.

-

Ich weiß, dass das Vorhandensein von Passwörtern in einem Skript ein Sicherheitsproblem darstellt, aber ich bin bereit, es zu ignorieren, insbesondere im allgemeineren Sinn der Installation von Paketen, die eine Antwort darauf beinhalten würde.


25
2017-07-13 00:45


Ursprung




Antworten:


Verwenden Sie die Voreinstellung der Debconf-Konfiguration.

Führen Sie eine Testinstallation durch, um die gewünschten Werte zu erhalten:

root@test1:~# apt-get install mysql-server

..und legen Sie das root-Passwort fest, wenn Sie während der Installation dazu aufgefordert werden.

Dann können Sie überprüfen, wie die Debconf-Einstellungen für das aussehen, was Sie gerade installiert haben (möglicherweise müssen Sie installieren) debconf-utils):

root@test1:~# debconf-get-selections | grep mysql-server
mysql-server-5.5        mysql-server/root_password_again        password
mysql-server-5.5        mysql-server/root_password      password
mysql-server-5.5        mysql-server/error_setting_password     error
mysql-server-5.5        mysql-server-5.5/postrm_remove_databases        boolean false
mysql-server-5.5        mysql-server-5.5/start_on_boot  boolean true
mysql-server-5.5        mysql-server-5.5/nis_warning    note
mysql-server-5.5        mysql-server-5.5/really_downgrade       boolean false
mysql-server-5.5        mysql-server/password_mismatch  error
mysql-server-5.5        mysql-server/no_upgrade_when_using_ndb  error

Da ist etwas Rauschen, aber der wichtige Teil ist die Passworteinstellungen.

Bei einer Neuinstallation können Sie die Eingabeaufforderungen vollständig umgehen, indem Sie das Kennwort zuvor festlegen:

root@test2:~# echo "mysql-server-5.5 mysql-server/root_password_again password Som3Passw0rd" | debconf-set-selections
root@test2:~# echo "mysql-server-5.5 mysql-server/root_password password Som3Passw0rd" | debconf-set-selections
root@test2:~# apt-get install mysql-server

Keine Eingabeaufforderungen während dieser Installation.


43
2017-07-13 04:10



sudo apt-get install debconf-utils wie nötig. - Andrew
Das sieht genau so aus, wie ich gesucht habe, danke! Ich werde es in Kürze versuchen. - Tarka
Abgesehen von einem bekannten Fehler mit phpMyAdmin, der kein vorher gesetztes MySQL root-Passwort akzeptiert, funktioniert das perfekt! - Tarka
nur wundernd, gibt es eine Möglichkeit, mögliche Debconf-Einstellungen aus dem Paket-System zu bekommen, ohne die Pakete zu installieren? - stefan.at.wpf


export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install _packages_

14
2017-07-13 00:53



Haben Sie eine Referenz für das Lesen von $ DEBIAN_FRONTEND? - Andrew
Dies war so lange ein Teil von Debian, dass ich nur daran denke Ian könnte dir wirklich sagen, wann es hinzugefügt wurde. - Michael Hampton♦
@Andrew Es wird von gelesen debconf, was sich tatsächlich mit den Fragen beschäftigt. - mgorven
@Mgorven Ahh, ich bin noch nicht viel tiefer als Dpkg gegangen. - Andrew