add suport for setting debconf selections through debconf-set-selections

This commit is contained in:
Scott Moser 2010-06-18 15:00:45 -04:00
parent 0adf05faad
commit fc5be66e5b
3 changed files with 24 additions and 15 deletions

View File

@ -1,5 +1,6 @@
import cloudinit.util as util
import subprocess
import traceback
import os
def handle(name,cfg,cloud,log,args):
@ -23,6 +24,15 @@ def handle(name,cfg,cloud,log,args):
for e in errors:
log.warn("Source Error: %s\n" % ':'.join(e))
dconf_sel = util.get_cfg_option_str(cfg, 'debconf_selections', False)
if dconf_sel:
log.debug("setting debconf selections per cloud config")
try:
util.subp(('debconf-set-selections', '-'), dconf_sel)
except:
log.error("Failed to run debconf-set-selections")
log.debug(traceback.format_exc())
pkglist = []
if 'packages' in cfg:
if isinstance(cfg['packages'],list):

View File

@ -18,18 +18,3 @@ apt_conf:
- content: |
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt -p critical|| true";
# Provide debconf answers
#
# See debconf-set-selections man page.
#
# Default: none
#
debconf_selections: | # Need to perserve newlines
# Force debconf priority to critical.
debconf debconf/priority select critical
# Override default frontend to readline, but allow user to select.
debconf debconf/frontend select readline
debconf debconf/frontend seen false

View File

@ -212,3 +212,17 @@ cloud_config_modules:
# can easily be imported into the configured user
# This can be a single string ('smoser') or a list ([smoser, kirkland])
ssh_import_id: [smoser]
# Provide debconf answers
#
# See debconf-set-selections man page.
#
# Default: none
#
debconf_selections: | # Need to perserve newlines
# Force debconf priority to critical.
debconf debconf/priority select critical
# Override default frontend to readline, but allow user to select.
debconf debconf/frontend select readline
debconf debconf/frontend seen false