Mentre FAI e sistemi simili sono utili in un ambiente aziendale (e dovrebbe conoscerli), purtroppo non sono una panacea.
Ad esempio, cosa succede se sta lavorando su macchine remote, forse hosted, server noleggiati, server associati senza una rete affidabile o dedicata o un ambiente cloud come EC2? Nessun tipo di netboot PXE funzionerà lì. Puppet e Chef sembrano essere strumenti più generici che potrebbero aiutarlo, tuttavia.
cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get install somepackage
Name: ...
Template: ...
Value: ...
Owners: ...
Variables:
....
....
EOF
È possibile ottenere i valori corretti dal DB debconf su un sistema che è già stato impostato. Questa tecnica ti consente di inserire tutto in un unico script di shell. Ad esempio, da /var/cache/debconf/passwords.dat (nota la possibilità di lavorare sia con 5.0 su Debian che con 5.1 e Ubuntu, le voci extra non danneggiano nulla):
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
Un altro metodo, forse più semplice: (raccogliere le risposte da debconf-get-selections o debconf-show dal pacchetto 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
Dopo aver eseguito debconf-set-selections, controlla le risposte: cat /var/cache/debconf/passwords.dat
E, durante il test, assicurati di rimuovere ed eliminare tutti i database (in particolare il database mysql, dove questo è memorizzato) e correggere il tuo DB di configurazione nel caso in cui fossero danneggiati:
apt-get --purge remove mysql-server*; /usr/share/debconf/fix_db.pl
Alcuni consigli con questo: 1) DEVI avere il flag visto e la password _again. 2) NON DEVI inserire virgolette attorno alla password. Andrà in una query MySQL non quotata, quindi è necessario citarla da soli, se necessario. Ciò significa anche che non ci sono spazi (credo) 3) Se hai problemi, esegui la preconfigurazione a mano e quindi esegui l'installazione MySQL direttamente da te (in un normale terminale / tty) e vedi cosa ti dice debconf. Vi dirà avvertimenti ed errori lì.