--- a/pkvlm-create Mon Jan 30 13:18:49 2012 +0200
+++ b/pkvlm-create Mon Jan 30 13:35:12 2012 +0200
@@ -269,7 +269,7 @@
### Preseed setup
## preseed.cfg templating
-PRESEED_SOURCE_DIR="preseed"
+PRESEED_DIR="preseed"
# Preseed output file in install tree
PRESEED_NAME="preseed.cfg"
@@ -282,7 +282,7 @@
#PRESEED_TARGET_PREFIX=""
# Main preseed source template
-PRESEED_TEMPLATE="${PRESEED_SOURCE_DIR}/${PRESEED_NAME}"
+PRESEED_TEMPLATE="${PRESEED_DIR}/${PRESEED_NAME}"
# Target path for preseed in install tree
PRESEED_FILE="${INSTALL_TREE}/${PRESEED_NAME}"
@@ -321,15 +321,20 @@
## preseed-files
# template source
-CONF_FILES_SOURCE='preseed/files'
+PRESEED_FILES_SOURCES=( 'preseed/files' )
# template output into install tree
-CONF_FILES_TARGET_NAME='preseed-files'
-CONF_FILES_TARGET="${INSTALL_TREE}/${CONF_FILES_TARGET_NAME}"
+PRESEED_FILES_TARGET_NAME='preseed-files'
+PRESEED_FILES_TARGET="${INSTALL_TREE}/${PRESEED_FILES_TARGET_NAME}"
# paths within installer runtime
-CONF_FILES_CP_SRC="${PRESEED_MOUNT}/${CONF_FILES_TARGET_NAME}"
-CONF_FILES_CP_DST='/target'
+PRESEED_FILES_INSTALLER_SOURCE="${PRESEED_MOUNT}/${PRESEED_FILES_TARGET_NAME}"
+PRESEED_FILES_INSTALLER_TARGET='/target'
+
+# Add a tree of configuration files to template into the installer
+function preseed_conf_files () {
+ PRESEED_FILES_SOURCES=( "${PRESEED_FILES_SOURCES[@]:-}" "$@" )
+}
# Add a file to install in preseed, without templating
# preseed_file <src> <dst>/
@@ -338,7 +343,7 @@
local src=$1
local dst=$2
local dir=$(dirname $dst)
- local tgt=${CONF_FILES_TARGET}
+ local tgt=${PRESEED_FILES_TARGET}
local tgt_dir="$tgt/$dir"
@@ -356,8 +361,10 @@
if [ $opt_puppet ]; then
log_info "Puppetizing preseed"
PUPPET=yes
+
+ PUPPET_PRESEED_DIR="${PRESEED_DIR}/puppet"
- # install package
+ ## Packages
preseed_packages puppet
## Vars for preseed-files
@@ -366,12 +373,17 @@
# path ssl data (ssldir)
PUPPET_SSLDIR=/etc/puppet/ssl
+
+ ## Preseed files
+ # add to list of conf files to copy
+ preseed_conf_files "${PUPPET_PRESEED_DIR}/files"
+
fi
# Invoked during image-customizing process
function puppet_config () {
## Preseed ssl certs?
- PUPPET_SOURCE_SSLDIR="${PRESEED_SOURCE_DIR}/puppet/ssl"
+ PUPPET_SOURCE_SSLDIR="${PUPPET_PRESEED_DIR}/ssl"
# copy file to preseed if exists
function puppet_preseed_ssl_file () {
@@ -426,10 +438,10 @@
# copy at end of install
-preseed_late_commands "cp -rd -- ${CONF_FILES_CP_SRC}/* ${CONF_FILES_CP_DST}"
+preseed_late_commands "cp -rd -- ${PRESEED_FILES_INSTALLER_SOURCE}/* ${PRESEED_FILES_INSTALLER_TARGET}"
# Additional files to copy
-PRESEED_INCLUDE_FILES=( $(for preseed in ${PRESEED_INCLUDES[@]}; do echo "${PRESEED_SOURCE_DIR}/${preseed}"; done) )
+PRESEED_INCLUDE_FILES=( $(for preseed in ${PRESEED_INCLUDES[@]}; do echo "${PRESEED_DIR}/${preseed}"; done) )
#PRESEED_INCLUDE_FILES=("preseed/passwords.cfg" "preseed/host.cfg")
# preseed.cfg 'includes' line
@@ -441,7 +453,7 @@
## Isolinux
# Source for install tree isolinux file
-PRESEED_ISOLINUX="${PRESEED_SOURCE_DIR}/isolinux.cfg"
+PRESEED_ISOLINUX="${PRESEED_DIR}/isolinux.cfg"
# Automagics for serial boot :)
# virt-install assumes we have an X $DISPLAY if given --vnc
@@ -560,6 +572,8 @@
### Prepare install
+log_info "Extract installer..."
+
## Extract .iso
if [ -f ${INSTALLER_FLAG} ]; then
log_info "Installer already unpacked: ${INSTALLER_TREE}"
@@ -580,15 +594,19 @@
### Customize preseed
+log_info "Generate preseed..."
+
## preseed.cfg
cmd expand_template ${PRESEED_TEMPLATE} ${PRESEED_FILE}
# md5sum
PRESEED_CHECKSUM=$(my_md5sum $PRESEED_FILE)
+
## Isolinux
cmd expand_template ${PRESEED_ISOLINUX} ${INSTALL_TREE}/isolinux/isolinux.cfg
+
## Includes
for file in ${PRESEED_INCLUDE_FILES[@]}; do
name=$(basename $file)
@@ -596,11 +614,17 @@
cmd expand_template $file ${INSTALL_TREE}/${name}
done
-log_info "Preseed generated: $PRESEED_FILE"
+log_debug "Preseed generated: $PRESEED_FILE"
+
## Config preseed-files
-log_info "Copy preseed-files"...
-cmd expand_tree ${CONF_FILES_SOURCE} ${CONF_FILES_TARGET}
+log_info "Copy preseed-files..."
+
+for tree in "${PRESEED_FILES_SOURCES[@]}"; do
+ log_info "preseed-files: $tree"
+
+ cmd expand_tree $tree ${PRESEED_FILES_TARGET}
+done
## Modules
# Puppet
@@ -611,6 +635,8 @@
### Create .iso
+log_info "Generate ISO..."
+
[ -f ${INSTALL_ISO} ] && cmd rm -f ${INSTALL_ISO}
# generates a lot of output
@@ -625,6 +651,8 @@
### Create virtual machine
if [ $DO_VIRTINSTALL ]; then
+ log_info "Create VM..."
+
## Check
# VM exists?
if cmd virsh domid ${GUEST_NAME} > /dev/null 2> /dev/null; then
--- a/preseed/files/etc/default/puppet Mon Jan 30 13:18:49 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-# Defaults for puppet - sourced by /etc/init.d/puppet
-
-# Start puppet on boot?
-START=yes
-
-# Startup options
-DAEMON_OPTS=""
--- a/preseed/files/etc/puppet/puppet.conf Mon Jan 30 13:18:49 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-[main]
-logdir=/var/log/puppet
-vardir=/var/lib/puppet
-ssldir={PUPPET_SSLDIR}
-rundir=/var/run/puppet
-factpath=$vardir/lib/facter
-templatedir=$confdir/templates
-
-[agent]
-server = {PUPPET_MASTER}
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/preseed/puppet/files/etc/default/puppet Mon Jan 30 13:35:12 2012 +0200
@@ -0,0 +1,7 @@
+# Defaults for puppet - sourced by /etc/init.d/puppet
+
+# Start puppet on boot?
+START=yes
+
+# Startup options
+DAEMON_OPTS=""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/preseed/puppet/files/etc/puppet/puppet.conf Mon Jan 30 13:35:12 2012 +0200
@@ -0,0 +1,11 @@
+[main]
+logdir=/var/log/puppet
+vardir=/var/lib/puppet
+ssldir={PUPPET_SSLDIR}
+rundir=/var/run/puppet
+factpath=$vardir/lib/facter
+templatedir=$confdir/templates
+
+[agent]
+server = {PUPPET_MASTER}
+