def _modify_iso(self): """ Method to modify the ISO for autoinstallation. """ self.log.debug("Putting the kickstart in place") outname = join(self.iso_contents, "ks.cfg") if self.auto is None: def _kssub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify kickstart files as appropriate for RHL-9. """ # because we need to do this URL substitution here, we can't use # the generic "copy_kickstart()" method if re.match("^url", line): return "url --url " + self.url + "\n" elif re.match("^rootpw", line): return "rootpw " + self.rootpw + "\n" else: return line copy_modify_file(generate_full_auto_path(self.stock_ks), outname, _kssub) else: shutil.copy(self.auto, outname) initrdline = " append initrd=initrd.img ks=cdrom:/ks.cfg method=" + self.url + "\n" self._modify_isolinux(initrdline)
def _modify_iso(self): """ Method to make the boot ISO auto-boot with appropriate parameters. """ self.log.debug("Modifying ISO") self.log.debug("Copying preseed file") mkdir_p(join(self.iso_contents, "preseed")) outname = join(self.iso_contents, "preseed", "customiso.seed") if self.preseed_file == generate_full_auto_path("debian-" + self.tdl.update + "-jeos.preseed"): def _preseed_sub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify preseed files as appropriate for Debian. """ if re.match('d-i passwd/root-password password', line): return 'd-i passwd/root-password password ' + self.rootpw + '\n' elif re.match('d-i passwd/root-password-again password', line): return 'd-i passwd/root-password-again password ' + self.rootpw + '\n' else: return line copy_modify_file(self.preseed_file, outname, _preseed_sub) else: shutil.copy(self.preseed_file, outname) if self.tdl.arch == "x86_64": installdir = "/install.amd" else: # arch == i386 installdir = "/install.386" self.log.debug("Modifying isolinux.cfg") isolinuxcfg = join(self.iso_contents, "isolinux", "isolinux.cfg") with open(isolinuxcfg, 'w') as f: f.write("""\ default customiso timeout 1 prompt 0 label customiso menu label ^Customiso menu default kernel %s/vmlinuz\ append file=/cdrom/preseed/customiso.seed %sdebian-installer/locale=en_US console-setup/layoutcode=us netcfg/choose_interface=auto priority=critical initrd=%s/initrd.gz -- """ % (installdir, extra, installdir))
def _modify_iso(self): """ Method to make the boot ISO auto-boot with appropriate parameters. """ self.log.debug("Modifying ISO") self.log.debug("Copying cfg file") if self.tdl.update in ["2007.0", "2008.0"]: pathdir = join(self.iso_contents, self.mandriva_arch) else: pathdir = self.iso_contents outname = join(pathdir, "auto_inst.cfg") if self.auto == generate_full_auto_path("mandriva-" + self.tdl.update + "-jeos.cfg"): def _cfg_sub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify preseed files as appropriate for Mandriva. """ if re.search("'password' =>", line): return " 'password' => '" + self.rootpw + "',\n" else: return line copy_modify_file(self.auto, outname, _cfg_sub) else: shutil.copy(self.auto, outname) self.log.debug("Modifying isolinux.cfg") isolinuxcfg = join(pathdir, "isolinux", "isolinux.cfg") with open(isolinuxcfg, 'w') as f: f.write("""\ default customiso timeout 1 prompt 0 label customiso kernel alt0/vmlinuz append initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 automatic=method:cdrom kickstart=auto_inst.cfg """)
def _copy_preseed(self, outname): """ Method to copy and modify an Ubuntu style preseed file. """ self.log.debug("Putting the preseed file in place") if self.preseed_file == generate_full_auto_path("ubuntu-" + self.tdl.update + "-jeos.preseed"): def _preseed_sub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify preseed files as appropriate for Ubuntu. """ if re.match('d-i passwd/root-password password', line): return 'd-i passwd/root-password password ' + self.rootpw + '\n' elif re.match('d-i passwd/root-password-again password', line): return 'd-i passwd/root-password-again password ' + self.rootpw + '\n' else: return line copy_modify_file(self.preseed_file, outname, _preseed_sub) else: shutil.copy(self.preseed_file, outname)
def _modify_iso(self): """ Method to make the boot ISO auto-boot with appropriate parameters. """ self.log.debug("Modifying ISO") os.mkdir(join(self.iso_contents, "cdboot")) self._geteltorito(self.orig_iso, join(self.iso_contents, "cdboot", "boot.bin")) outname = join(self.iso_contents, self.winarch, "winnt.sif") if self.siffile == generate_full_auto_path("windows-" + self.tdl.update + "-jeos.sif"): # if this is the oz default siffile, we modify certain parameters # to make installation succeed computername = "OZ" + str(random.randrange(1, 900000)) def _sifsub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify sif files as appropriate for Windows 2000/XP/2003. """ if re.match(" *ProductKey", line): return " ProductKey=" + self.tdl.key + "\n" elif re.match(" *ProductID", line): return " ProductID=" + self.tdl.key + "\n" elif re.match(" *ComputerName", line): return " ComputerName=" + computername + "\n" elif re.match(" *AdminPassword", line): return " AdminPassword="******"\n" else: return line copy_modify_file(self.siffile, outname, _sifsub) else: # if the user provided their own siffile, do not override their # choices; the user gets to keep both pieces if something breaks shutil.copy(self.siffile, outname)
def _modify_iso(self): """ Method to make the boot ISO auto-boot with appropriate parameters. """ self.log.debug("Modifying ISO") outname = join(self.iso_contents, "auto_inst.cfg") if self.auto == generate_full_auto_path("mandrake-" + self.tdl.update + "-jeos.cfg"): def _cfg_sub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify preseed files as appropriate for Mandrake. """ if re.search("'password' =>", line): return " 'password' => '" + self.rootpw + "',\n" else: return line copy_modify_file(self.auto, outname, _cfg_sub) else: shutil.copy(self.auto, outname) syslinux = join(self.icicle_tmp, 'syslinux.cfg') with open(syslinux, 'w') as f: f.write("""\ default customiso timeout 1 prompt 0 label customiso kernel vmlinuz append initrd=cdrom.rdz ramdisk_size=32000 root=/dev/ram3 automatic=method:cdrom vga=788 auto_install=auto_inst.cfg """) cdromimg = join(self.iso_contents, "Boot", "cdrom.img") subprocess_check_output(["mcopy", "-n", "-o", "-i", cdromimg, syslinux, "::SYSLINUX.CFG"])