Хотя FAI и подобные системы полезны в корпоративной среде (и он должен знать о них), они, к сожалению, не являются панацеей.
Например, что если он работает на удаленных машинах, возможно, на хостингах, на арендованных серверах, совместно расположенных серверах без доверенной или выделенной сети или в облачной среде, такой как EC2? Никакая сетевая загрузка PXE не будет работать там. Puppet и Chef кажутся более универсальными инструментами, которые могут ему помочь.
cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get install somepackage
Name: ...
Template: ...
Value: ...
Owners: ...
Variables:
....
....
EOF
Вы можете получить правильные значения из базы данных debconf в системе, которая уже была настроена. Эта техника позволяет вам все это вставить в один скрипт. Например, из /var/cache/debconf/passwords.dat (обратите внимание на возможность работы как с 5.0 на Debian, так и с 5.1 и Ubuntu, дополнительные записи ничего не повредят):
cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get -qq -y install mysql-server
Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen
Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen
Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen
Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen
EOF
Другой способ, возможно, проще: (собрать ответы из debconf-get-selections или debconf-show из пакета debconf-utils):
echo "Installing MySQL 5.0.."
sudo apt-get install -qqy debconf-utils
cat << EOF | debconf-set-selections
mysql-server-5.0 mysql-server/root_password password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password_again password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password seen true
mysql-server-5.0 mysql-server/root_password_again seen true
EOF
/usr/bin/apt-get -y install mysql-server-5.0 mysql-server
После того как вы запустите debconf-set-selections, проверьте свои ответы: cat /var/cache/debconf/passwords.dat
И, во время тестирования, обязательно удалите и очистите все базы данных (особенно базу данных mysql, где она хранится) и исправьте конфигурационную базу данных на случай, если они были повреждены:
apt-get --purge remove mysql-server*; /usr/share/debconf/fix_db.pl
Несколько советов по этому поводу: 1) У вас ДОЛЖНЫ быть флажок «Виден» и пароль _again. 2) Вы НЕ ДОЛЖНЫ ставить кавычки вокруг пароля. Он перейдет в запрос MySQL без кавычек, поэтому вы должны сами его заключить в кавычки, если это необходимо. Это также означает отсутствие пробелов (я думаю). 3) Если у вас возникли проблемы, выполните предварительный отбор вручную, а затем запустите установку MySQL самостоятельно (в обычном терминале / tty) и посмотрите, что debconf сообщает вам. Там будут рассказываться предупреждения и ошибки.