forked from ungleich-public/cdist
create kernel, pxeconfig and pxelinux.0
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
parent
995e33afc9
commit
c585e4876e
1 changed files with 28 additions and 10 deletions
|
@ -20,9 +20,11 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import glob
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import stat
|
import stat
|
||||||
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,11 +59,10 @@ class PreOS(object):
|
||||||
|
|
||||||
self.pxelinux = "/usr/lib/syslinux/pxelinux.0"
|
self.pxelinux = "/usr/lib/syslinux/pxelinux.0"
|
||||||
self.pxelinux_cfg = """
|
self.pxelinux_cfg = """
|
||||||
DEFAULT linux
|
DEFAULT preos
|
||||||
LABEL linux
|
LABEL preos
|
||||||
KERNEL linux
|
KERNEL kernel
|
||||||
INITRD initramfs
|
INITRD initramfs
|
||||||
APPEND ro root=/dev/sda1 initrd=initrd.img
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self._init_helper()
|
self._init_helper()
|
||||||
|
@ -155,13 +156,29 @@ cp -L "$src" "$real_dst"
|
||||||
os.chmod(filename, stat.S_IRUSR | stat.S_IXUSR)
|
os.chmod(filename, stat.S_IRUSR | stat.S_IXUSR)
|
||||||
|
|
||||||
def create_kernel(self):
|
def create_kernel(self):
|
||||||
cmd=[ "cp", '"$(ls boot/vmlinuz-* | tail -n1)"' ]
|
dst = os.path.join(self.out_dir, "kernel")
|
||||||
cmd.append
|
srcglob = glob.glob("%s/boot/vmlinuz-*" % self.target_dir)
|
||||||
|
src = srcglob[0]
|
||||||
|
|
||||||
pass
|
shutil.copyfile(src, dst, follow_symlinks=True)
|
||||||
|
|
||||||
|
def create_pxelinux(self):
|
||||||
|
dst = os.path.join(self.out_dir, "pxelinux.0")
|
||||||
|
src = "%s/usr/lib/syslinux/pxelinux.0" % self.target_dir
|
||||||
|
|
||||||
|
shutil.copyfile(src, dst, follow_symlinks=True)
|
||||||
|
|
||||||
|
def create_pxeconfig(self):
|
||||||
|
configdir = os.path.join(self.out_dir, "pxelinux.cfg")
|
||||||
|
configfile = os.path.join(configdir, "default")
|
||||||
|
if not os.path.isdir(configdir):
|
||||||
|
os.mkdir(configdir)
|
||||||
|
|
||||||
|
with open(configfile, "w") as fd:
|
||||||
|
fd.write(self.pxelinux_cfg)
|
||||||
|
|
||||||
def create_initramfs(self):
|
def create_initramfs(self):
|
||||||
base_cmd="find . -print0 | sudo cpio --null -ov --format=newc | gzip -9"
|
base_cmd="find . -print0 | cpio --null -ov --format=newc | gzip -9"
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -174,8 +191,9 @@ cp -L "$src" "$real_dst"
|
||||||
self.out_dir = out_dir
|
self.out_dir = out_dir
|
||||||
|
|
||||||
self.create_kernel()
|
self.create_kernel()
|
||||||
self.create_initramfs()
|
# self.create_initramfs()
|
||||||
self.create_pxeconfig()
|
self.create_pxeconfig()
|
||||||
|
self.create_pxelinux()
|
||||||
|
|
||||||
def config(self):
|
def config(self):
|
||||||
handle, path = tempfile.mkstemp(prefix='cdist.stdin.')
|
handle, path = tempfile.mkstemp(prefix='cdist.stdin.')
|
||||||
|
@ -210,4 +228,4 @@ cp -L "$src" "$real_dst"
|
||||||
if args.pxe_boot:
|
if args.pxe_boot:
|
||||||
self.create_pxe(args.pxe_boot)
|
self.create_pxe(args.pxe_boot)
|
||||||
if args.iso_boot:
|
if args.iso_boot:
|
||||||
self.create_iso(args.pxe_boot)
|
self.create_iso(args.iso_boot)
|
||||||
|
|
Loading…
Reference in a new issue