2017-07-28 2 views
3

Ich habe ein Skript geschrieben, um einige Pakete in eine Liste von Servern zu installieren. Wenn ich das Skript mysql Installation ausgeführt wurde stecken geblieben bei "Geben Sie das Root-Passwort ein" Abschnitt. Gibt es etwas, das ich in meinem Skript ändern muss? Berate mich.Mysql automatische Installation stecken

Gibt es eine Möglichkeit, das Mysql-Root-Passwort durch das Skript selbst zu übergeben?

Unten finden Sie den Code ein, den ich

verwendet
#!/usr/bin/env bash 
read -p "Enter server name : " servername 
echo "Installing package on $servername" 
ssh "${servername}" sudo apt-get -y install apache2 mysql-server 

Installation got stuck here

Auch wenn ich das Passwort eingeben, wäre es nicht zu dem nächsten Schritt fortfahren. Ich bin sehr Anfänger für das Scripting. Lassen Sie mich wissen, wo Sie das Skript ändern können.

Antwort

0
#!/usr/bin/env bash 
read -p "Enter server name : " servername 
echo "Installing package on $servername" 
ssh "${Host}" "echo 'mysql-server-5.7 mysql-server/root_password password your_password' | debconf-set-selections && \ 
echo 'mysql-server-5.7 mysql-server/root_password_again password your_password' | debconf-set-selections && \ 
apt-get update && \ 
apt-get -y install apache2 apache2-doc apache2-utils mysql-server" 

Der obige Code funktioniert der Trick

Hinweis : Backslash (\) wird zur besseren Lesbarkeit verwendet. Sie erlauben, den Befehl in einer nächsten Zeile fortzusetzen.

2

apt-get ist ein Front-End zu dpkg und debconf und wird im interaktiven Modus standardmäßig ausgeführt wird, auch -y wird daran nichts ändern.

mysql-server Installation erfordert das Root-Passwort, um während der Installation interaktiv eingegeben werden.

Um den MySQL-Server auf einer Debian-basierten Linux-Distribution vollständig automatisch zu installieren, können Sie den nicht interaktiven Modus aufrufen und das MySQL-Root-Passwort wie folgt voreinstellen.

In der Schale, wo Sie den Prozess ausführen möchten, führen:

export DEBIAN_FRONTEND="noninteractive" 

Dann

apt-get install -y debconf-utils 
debconf-set-selections <<< "mysql-server mysql-server/root_password yournewpassword" 
debconf-set-selections <<< "mysql-server mysql-server/root_password_again yournewpassword" 
apt-get install -y mysql-server-5.6 
Verwandte Themen