diff -r 4154c64c5d69 -r e3893b949972 pkvlm-create --- 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}