新しいサーバーの構成スクリプトを記述しようとしています。最初のステップの1つは、MySQL、phpMyAdminなどの一連の必須パッケージをapt-get install
を使用してインストールすることですが、dpkgがそれらを構成しようとするとMySQLのrootパスワード、phpMyAdminのパスワード、使用するサーバーなど、いくつかのオプションを要求します。
プロンプトを読む可能性が低い同僚にこのスクリプトを渡す可能性があり、単純にそれを開始して立ち去りたいという願望があるため、一連の "で渡す方法を知りたいdefault "回答/使用する値。コマンドラインで渡されるユーザー名/パスワード/その他の動的な値が含まれる場合があります。
-
スクリプトにパスワードを設定することはセキュリティ上の問題であることは承知していますが、特にこれに対する回答が意味するパッケージのインストールというより一般的な意味では、無視してもかまいません。
Debconfの設定preseedを使用します。
テストインストールを実行して、必要な値を取得します。
root@test1:~# apt-get install mysql-server
インストール中にプロンプトが表示されたら、ルートパスワードを設定します。
次に、インストールしたばかりのdebconf設定がどのように見えるかを確認できます(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
多少ノイズがありますが、重要な部分はパスワードの設定です。
次に、新規インストールの場合、事前にパスワードを設定することで、プロンプトを完全に回避できます。
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
そのインストール中にプロンプトはまったくありません。
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install _packages_
Debconfパッケージには debconf-show
:
debconf-show package