Назад | Перейти на главную страницу

Передача ответов по умолчанию на вопросы по установке пакета apt-get?

Я пытаюсь написать сценарий конфигурации для новых серверов, и одним из первых шагов является установка ряда необходимых пакетов, таких как 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