def install_package(self, chroot, package): env = os.environ.copy() env["DEBIAN_FRONTEND"] = "noninteractive" vmdb.runcmd_chroot( chroot, ["apt-get", "-y", "--no-show-progress", "install", package], env=env)
def install_package(self, chroot, package): env = os.environ.copy() env['DEBIAN_FRONTEND'] = 'noninteractive' vmdb.runcmd_chroot( chroot, ['apt-get', '-y', '--no-show-progress', 'install', package], env=env)
def install_grub(self, step, settings, state, grub_package, grub_target): console = step.get('console', None) rootfs = step['root-fs'] chroot = state.mounts[rootfs] root_part = step['root-part'] root_dev = state.parts[root_part] image_dev = self.get_image_loop_device(root_dev) if 'efi-part' in step: efi_part = step['efi-part'] efi_dev = state.parts[efi_part] else: efi_dev = None self.bind_mount_many(chroot, ['/dev', '/proc', '/sys'], state) if efi_dev: self.mount(chroot, efi_dev, '/boot/efi', state) self.install_package(chroot, grub_package) kernel_params = [ 'biosdevname=0', 'net.ifnames=0', 'consoleblank=0', 'systemd.show_status=true', 'rw', 'quiet', 'systemd.show_status=false', ] if console == 'serial': kernel_params.extend([ 'quiet', 'loglevel=3', 'rd.systemd.show_status=false', 'systemd.show_status=false', 'console=tty0', 'console=ttyS0,115200n8', ]) self.set_grub_cmdline_config(chroot, kernel_params) if console == 'serial': self.add_grub_serial_console(chroot) vmdb.runcmd_chroot(chroot, ['grub-mkconfig', '-o', '/boot/grub/grub.cfg']) vmdb.runcmd_chroot(chroot, [ 'grub-install', '--target=' + grub_target, '--no-nvram', '--force-extra-removable', '--no-floppy', '--modules=part_msdos part_gpt', '--grub-mkdevicemap=/boot/grub/device.map', image_dev, ]) self.unmount(state)
def install_packages(self, mount_point, argv_prefix, packages): env = os.environ.copy() env['DEBIAN_FRONTEND'] = 'noninteractive' vmdb.runcmd_chroot(mount_point, argv_prefix + ['apt-get', '-y', '--no-show-progress', 'install'] + packages, env=env)
def run(self, step, settings, state): fs_tag = step['chroot'] shell = step['shell'] mount_point = state.mounts[fs_tag] vmdb.progress( 'chroot {} to {}'.format(mount_point, ' '.join(shell.split('\n')))) vmdb.runcmd_chroot(mount_point, ['sh', '-c', shell])
def run(self, step, settings, state): suite = step['debootstrap'] tag = step['target'] target = state.tags.get_mount_point(tag) mirror = step['mirror'] variant = step.get('variant', '-') if not (suite and tag and target and mirror): raise Exception('missing arg for debootstrap step') vmdb.runcmd(['debootstrap', '--variant', variant, suite, target, mirror]) vmdb.runcmd_chroot(target, ['apt-get', 'update'])
def run(self, step, settings, state): suite = step['qemu-debootstrap'] tag = step['target'] target = state.tags.get_mount_point(tag) mirror = step['mirror'] variant = step.get('variant', '-') arch = step['arch'] components = step.get('components', ['main']) if not (suite and tag and target and mirror and arch): raise Exception('missing arg for qemu-debootstrap step') vmdb.runcmd([ 'qemu-debootstrap', '--arch', arch, '--variant', variant, '--components', ','.join(components), suite, target, mirror ]) vmdb.runcmd_chroot(target, ['apt-get', 'update'])
def run(self, values, settings, state): suite = values["qemu-debootstrap"] tag = values["target"] target = state.tags.get_builder_mount_point(tag) mirror = values["mirror"] keyring = values["keyring"] or None variant = values["variant"] arch = values["arch"] components = values["components"] if not (suite and tag and target and mirror and arch): raise Exception("missing arg for qemu-debootstrap step") # Update the state with the target architecture declared here # in order that later stages can find it and behave # appropriately. state.arch = arch if keyring: vmdb.runcmd( [ "qemu-debootstrap", "--keyring", keyring, "--arch", arch, "--variant", variant, "--components", ",".join(components), suite, target, mirror, ] ) else: vmdb.runcmd( [ "qemu-debootstrap", "--arch", arch, "--variant", variant, "--components", ",".join(components), suite, target, mirror, ] ) vmdb.runcmd_chroot(target, ["apt-get", "update"])
def install_packages(self, mount_point, argv_prefix, recommends, packages): env = os.environ.copy() env["DEBIAN_FRONTEND"] = "noninteractive" vmdb.runcmd_chroot(mount_point, argv_prefix + ["apt-get", "update"], env=env) rec = '' if recommends: rec = '--no-install-recommends' vmdb.runcmd_chroot( mount_point, argv_prefix + ["apt-get", "-y", "--no-show-progress", rec, "install"] + packages, env=env, )
def run_even_if_skipped(self, values, settings, state): tag = values["target"] target = state.tags.get_builder_mount_point(tag) state.arch = values["arch"] vmdb.runcmd_chroot(target, ["apt-get", "update"])
def run(self, values, settings, state): fs_tag = values["chroot"] shell = values["shell"] mount_point = state.tags.get_builder_mount_point(fs_tag) vmdb.runcmd_chroot(mount_point, ["sh", "-ec", shell])
def clean_cache(self, mount_point): env = os.environ.copy() env['DEBIAN_FRONTEND'] = 'noninteractive' vmdb.runcmd_chroot(mount_point, ['apt-get', 'clean'], env=env)
def run(self, step, settings, state): fs_tag = step['chroot'] shell = step['shell'] mount_point = state.tags.get_mount_point(fs_tag) vmdb.runcmd_chroot(mount_point, ['sh', '-c', shell])
def install_grub(self, values, settings, state, grub_package, grub_target): console = values["console"] or None tag = values["tag"] or values["root-fs"] or None root_dev = state.tags.get_dev(tag) chroot = state.tags.get_builder_mount_point(tag) image_dev = values["image-dev"] or None if image_dev is None: image_dev = self.get_image_loop_device(root_dev) efi = values["efi"] or None efi_part = values["efi-part"] or None if efi is not None: efi_dev = state.tags.get_dev(efi) elif efi_part is not None: efi_dev = state.tags.get_dev(efi_part) else: efi_dev = None prep = values["prep"] or None if prep: prep_dev = state.tags.get_dev(prep) else: prep_dev = None quiet = values["quiet"] self.bind_mount_many(chroot, ["/dev", "/sys", "/proc"], state) if efi_dev: pn = efi_dev[-1] vmdb.runcmd(["parted", "-s", image_dev, "set", pn, "esp", "on"]) self.mount(chroot, efi_dev, "/boot/efi", state) elif prep_dev: pn = prep_dev[-1] vmdb.runcmd(["parted", "-s", image_dev, "set", pn, "prep", "on"]) image_dev = prep_dev self.install_package(chroot, grub_package) kernel_params = [ "biosdevname=0", "net.ifnames=0", "consoleblank=0", "systemd.show_status=true", "rw", ] if console == "serial": if 'ppc64' in state.arch: kernel_params.extend( ["loglevel=3", "console=tty0", "console=hvc0,115200n8"]) elif 'arm' in state.arch: kernel_params.extend( ["loglevel=3", "console=tty0", "console=ttyAMA0,115200n8"]) else: kernel_params.extend( ["loglevel=3", "console=tty0", "console=ttyS0,115200n8"]) if quiet: kernel_params.extend([ "quiet", "systemd.show_status=false", "rd.systemd.show_status=false", "systemd.show_status=false", ]) self.set_grub_cmdline_config(chroot, kernel_params) self.add_grub_crypto_disk(chroot) self.set_grub_timeout(chroot, values["timeout"]) if console == "serial": self.add_grub_serial_console(chroot) vmdb.runcmd_chroot(chroot, ["grub-mkconfig", "-o", "/boot/grub/grub.cfg"]) vmdb.runcmd_chroot( chroot, [ "grub-install", "--target=" + grub_target, "--no-nvram", "--force-extra-removable", "--no-floppy", "--modules=part_msdos part_gpt", "--grub-mkdevicemap=/boot/grub/device.map", image_dev, ], )
def clean_cache(self, mount_point): env = os.environ.copy() env["DEBIAN_FRONTEND"] = "noninteractive" vmdb.runcmd_chroot(mount_point, ["apt-get", "clean"], env=env)