2017-07-28 14 views
3

サーバのリストにいくつかのパッケージセットをインストールするためのスクリプトを書いています。私がスクリプトを実行すると、mysqlのインストールは「rootパスワードを入力してください」というセクションで止まってしまいました。スクリプトで変更する必要があるものはありますか?私に助言してください。Mysqlの自動インストールが失敗しました

スクリプト自体からmysqlのルートパスワードを渡す方法はありますか?以下は

私はパスワードを入力した場合でも、それは次のステップに進まないでしょう

#!/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

を使用するコードです。私はスクリプト作成の初心者です。スクリプトを変更する場所を教えてください。

答えて

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" 

上記のコードは、トリック

注意をし可読性のためにバックスラッシュ(\)が使用されています。次の行でコマンドを続けることができます。

2

apt-getでも-yがそれを変更されません、dpkgdebconfへのフロントエンドであり、デフォルトで対話モードで実行されています。

mysql-serverインストールするには、インストール時に対話形式で入力する必要があります。

DebianベースのLinuxディストリビューションにMySQLサーバを完全にインストールするには、非対話型モードに入り、MySQLルートパスワードを次のように事前設定します。あなたがプロセスを実行したいシェル、実行中

:次に

export DEBIAN_FRONTEND="noninteractive" 

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 
関連する問題