pkvlm-create
changeset 15 e3893b949972
parent 14 4154c64c5d69
child 16 d74646c0b5dd
--- a/pkvlm-create	Fri Jan 27 12:07:32 2012 +0200
+++ b/pkvlm-create	Fri Jan 27 14:41:02 2012 +0200
@@ -139,6 +139,7 @@
 define_opt  dns_domain  paivola.fi
 define_opt  ip          
 define_opt  puppet      
+define_opt  puppet_master   puppet
 
 log_info "Processing ${#@} parameters:"
 for param in "$@"; do
@@ -240,21 +241,26 @@
 PRESEED_LATE_COMMANDS=( )
 PRESEED_INCLUDES=( 'passwords.cfg' 'host.cfg' )
 
+
+### Extra
+## Puppet
 if [ $opt_puppet ]; then
     log_info "Puppetizing preseed"
 
     PUPPET_PACKAGES=( puppet )
     PUPPET_COMMANDS=( \
-        "in-target sed -i 's/START=no/START=yes/' /etc/default/puppet"  \
+#        "in-target sed -i 's/START=no/START=yes/' /etc/default/puppet"  \
+#        "echo '[agent]\nserver = ${opt_puppet_master}\n' >> /etc/puppet/puppet.conf" \
     )
 
+    # XXX: we use files in preseed/files/..., should modularize those
+
+    PUPPET_MASTER="${opt_puppet_master}"
+
     PACKAGE_INCLUDES=( ${PACKAGE_INCLUDES[@]} ${PUPPET_PACKAGES[@]} )
-    PRESEED_LATE_COMMANDS=( ${PRESEED_LATE_COMMANDS[@]:-} ${PUPPET_COMMANDS[@]} )
+    PRESEED_LATE_COMMANDS=( "${PRESEED_LATE_COMMANDS[@]:-}" "${PUPPET_COMMANDS[@]:-}" )
 fi
 
-# full commands
-PRESEED_LATE_COMMAND=$(IFS=$'; \\\n\t' echo "${PRESEED_LATE_COMMANDS[@]}")
-
 ### Installer setup
 ## Installation image
 # Original Debian Installer image (iso)
@@ -270,7 +276,6 @@
 INSTALL_TREE="images/${INSTALL_NAME}"
 INSTALL_ISO="iso-out/${INSTALL_NAME}.iso"
 
-
 ## Preseed files
 # Preseed output file in install tree
 PRESEED_NAME="preseed.cfg"
@@ -278,6 +283,9 @@
 # Directory containing our source templates
 PRESEED_SOURCE_DIR="preseed"
 
+# Mount path of preseed target in installer
+PRESEED_MOUNT="/cdrom"
+
 # Prefix for target files in install tree
 # XXX: not implemented
 #PRESEED_TARGET_PREFIX=""
@@ -291,6 +299,18 @@
 # Checksum of target preseed.cfg
 PRESEED_CHECKSUM= # set later
 
+## Configs
+CONF_FILES_SOURCE='preseed/files'
+CONF_FILES_TARGET_NAME='preseed-files'
+CONF_FILES_TARGET="${INSTALL_TREE}/${CONF_FILES_TARGET_NAME}"
+CONF_FILES_CP_SRC="${PRESEED_MOUNT}/${CONF_FILES_TARGET_NAME}"
+CONF_FILES_CP_DST='/target'
+
+PRESEED_LATE_COMMANDS=( "${PRESEED_LATE_COMMANDS[@]:-}" \
+    "cp -rd -- ${CONF_FILES_CP_SRC}/* ${CONF_FILES_CP_DST}"  \
+)
+
+
 # Additional files to copy
 PRESEED_INCLUDE_FILES=( $(for preseed in ${PRESEED_INCLUDES[@]}; do echo "${PRESEED_SOURCE_DIR}/${preseed}"; done) )
 #PRESEED_INCLUDE_FILES=("preseed/passwords.cfg" "preseed/host.cfg")
@@ -298,6 +318,9 @@
 # preseed.cfg 'includes' line
 PRESEED_INCLUDE=${PRESEED_INCLUDES[@]}
 
+# preseed command execution
+PRESEED_LATE_COMMAND=$(for cmd in "${PRESEED_LATE_COMMANDS[@]}"; do if [ "$cmd" ]; then echo -n "$cmd;" $'\\\n    '; fi; done; echo true)
+
 
 ## Isolinux
 # Source for install tree isolinux file
@@ -315,7 +338,7 @@
 fi
 
 # installer boot args
-INSTALL_BOOT_ARGS="auto=true priority=critical preseed/file=/cdrom/${PRESEED_NAME} preseed/file/checksum=${PRESEED_CHECKSUM} -- quiet ${INSTALL_BOOT_CONSOLE}"
+INSTALL_BOOT_ARGS="auto=true priority=critical preseed/file=${PRESEED_MOUNT}/${PRESEED_NAME} preseed/file/checksum=${PRESEED_CHECKSUM} -- quiet ${INSTALL_BOOT_CONSOLE}"
 
 
 
@@ -449,6 +472,10 @@
 
 log_info "Preseed generated: $PRESEED_FILE"
 
+# Files
+log_info "Copy preseed-files"...
+cmd expand_tree ${CONF_FILES_SOURCE} ${CONF_FILES_TARGET}
+
 ## Create .iso
 [ -f ${INSTALL_ISO} ] && cmd rm -f ${INSTALL_ISO}