Я пытаюсь написать сценарий конфигурации для новых серверов, и одним из первых шагов является установка ряда необходимых пакетов, таких как MySQL, phpMyAdmin и т. Д., Используя apt-get install
Однако, когда dpkg пытается их настроить, он запрашивает у вас несколько параметров, таких как пароль root MySQL, пароли phpMyAdmin, какой сервер использовать и т. Д.
Поскольку я, скорее всего, передам этот сценарий коллегам, которые вряд ли прочитают подсказки, и мое желание просто запустить его и уйти, Я хотел бы знать, как передать серию "стандартных" ответов / значений для использования. Это может включать имена пользователей / пароли / другие динамические значения, передаваемые в командной строке.
-
Я понимаю, что наличие паролей в сценарии является проблемой безопасности, но я готов проигнорировать это, особенно в более общем смысле установки пакетов, который подразумевает ответ на этот вопрос.
Используйте предварительную настройку конфигурации debconf.
Выполните тестовую установку, чтобы получить нужные значения:
root@test1:~# apt-get install mysql-server
..и установите пароль root, когда будет предложено во время установки.
Затем вы можете проверить, как выглядят настройки 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