Ubuntun käyttämä Debianin APT-pakettijärjestelmä toimii oletuksena interaktiivisesti. Kun uusi paketti asennetaan apt-get install -komennolla, se kyselee usein käyttäjältä erilaisia tietokanta-asetuksia ja muita preferenssejä. Tämä hankaloittaa pakettien asentamista automaattisesti esimeriksi Puppetilla.
Ongelma on ratkaistavissa preseedaamalla tarvittavat asetukset debconfille etukäteen. Puppet tukee preseedausta suoraan package-direktiivisessä.
Ideana on asentaa paketti kerran käsin niin, että tarvittavat asetukset tallentuvat muistiin. Asetukset esimerkiksi phpbb3-paketille saa sitten näkyviin näin:
sudo debconf-get-selections | grep phpbb3
Asetuksia on todennäköisesti aika paljon, joten voi käyttää harkintaa siinä, tarvitaanko välttämättä kaikkia preseedaukseen. Itse kokeillessani nämä kaksi riviä riittivät phpbb3:n tapauksessa:
phpbb3 phpbb3/httpd multiselect apache2
phpbb3 phpbb3/dbconfig-install boolean false
Preseedatut asetukset voi ottaa käyttöön ainakin kahdella eri tavalla. Ne voi laittaa väliaikaistiedostoon ja ottaa käyttöön komennolla:
sudo debconf-set-selections /tmp/phpbb3.preseed
Tai jos käyttää Puppetia, niin package-direktiiviin voi littää responsefile-attribuutin osoittamaan samaan tiedostoon (joka pitää tietysti ensin luoda toisella direktiivillä):
package { 'phpbb3':
ensure => installed,
responsefile => '/tmp/preseed.phpbb3',
require => File['/tmp/preseed.phpbb3'],
}
Tällaisen asennuksen jälkeen täytyy sitten muistaa vielä luoda tarvittavat konfiguraatiotiedostot, jos niiden automaattisen (interaktiivisen) luomisen on ohittanut paketin asennusvaiheessa.