re-structuring everything to make it look more like a package that one can build, also adding syslinux pxe configs and cleanup
This commit is contained in:
parent
d02b2eba2c
commit
d2083c622d
|
@ -3,9 +3,8 @@ pipeline:
|
||||||
image: registry.v1.cloud.wit.com/toby/packager:1.3
|
image: registry.v1.cloud.wit.com/toby/packager:1.3
|
||||||
commands:
|
commands:
|
||||||
- export DEBNAME=wit-pxeboot
|
- export DEBNAME=wit-pxeboot
|
||||||
- export RESULT_DIR=/tmp/result
|
- echo "$DEBNAME (1.0.$(date +%Y.%m.%d.%H.%M)) unstable; urgency=low\n\n$(git log --format=" * %s")\n\n -- wit <netops@wit.com> $(date -R)" >debian/changelog
|
||||||
- ./create_pxeinitrd.sh
|
- ./create_pxeinitrd.sh
|
||||||
- cd $RESULT_DIR
|
|
||||||
- dpkg-buildpackage --no-sign
|
- dpkg-buildpackage --no-sign
|
||||||
- ls -lha ../$DEBNAME_*_all.deb
|
- ls -lha ../$DEBNAME_*_all.deb
|
||||||
- echo "$SSH_KEY" >/tmp/id_rsa
|
- echo "$SSH_KEY" >/tmp/id_rsa
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -Eeuxo pipefail
|
set -Eeuxo pipefail
|
||||||
|
|
||||||
DEBNAME=${DEBNAME:=wit-pxeboot}
|
|
||||||
|
|
||||||
SIZE=10000
|
SIZE=10000
|
||||||
HOSTNAME=localhost
|
HOSTNAME=localhost
|
||||||
RELEASE=unstable
|
RELEASE=unstable
|
||||||
|
|
||||||
TMP_DIR=$(mktemp -d)
|
TMP_DIR=$PWD
|
||||||
MNT_DIR=$TMP_DIR/newroot
|
MNT_DIR=$TMP_DIR/newroot
|
||||||
RESULT_DIR=${RESULT_DIR:=/tmp/result}
|
RESULT_DIR=${RESULT_DIR:=$TMP_DIR/files}
|
||||||
|
|
||||||
|
|
||||||
# Configs overwritable via environment variables
|
# Configs overwritable via environment variables
|
||||||
|
@ -19,12 +17,7 @@ MIRROR=${MIRROR:="https://mirrors.wit.com/debian"}
|
||||||
ARCH=${ARCH:=amd64}
|
ARCH=${ARCH:=amd64}
|
||||||
|
|
||||||
|
|
||||||
clean_debian() {
|
|
||||||
[ "$TMP_DIR" != "" ] && rm -r $TMP_DIR
|
|
||||||
}
|
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
clean_debian
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "FAILED: $1"
|
echo "FAILED: $1"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -167,73 +160,6 @@ chroot $MNT_DIR systemctl enable start-me-up || fail "failed to enable start-me-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###############
|
|
||||||
## deb build ##
|
|
||||||
###############
|
|
||||||
|
|
||||||
|
|
||||||
mkdir -p $RESULT_DIR/debian
|
|
||||||
echo -e "$DEBNAME (1.0.$(date +%Y.%m.%d.%H.%M)) unstable; urgency=low\n\n$(git log --format=" * %s")\n\n -- wit <netops@wit.com> $(date -R)" >$RESULT_DIR/debian/changelog
|
|
||||||
|
|
||||||
echo "11" >$RESULT_DIR/debian/compat
|
|
||||||
|
|
||||||
cat <<EOF >$RESULT_DIR/debian/$DEBNAME.install
|
|
||||||
./vmlinuz /srv/tftp/wit-pxeboot/
|
|
||||||
./initramfs.gz /srv/tftp/wit-pxeboot/
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
cat <<EOF >$RESULT_DIR/debian/control
|
|
||||||
Source: $DEBNAME
|
|
||||||
Section: unknown
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: wit <netops@wit.com>
|
|
||||||
Build-Depends: debhelper (>= 11)
|
|
||||||
Standards-Version: 4.1.3
|
|
||||||
Homepage: http://www.wit.com
|
|
||||||
|
|
||||||
Package: $DEBNAME
|
|
||||||
Architecture: all
|
|
||||||
Depends: \${misc:Depends}, tftpd-hpa
|
|
||||||
Description: kernel and initrd to pxeboot debcore
|
|
||||||
kernel and initrd to boot a pxe image easily
|
|
||||||
it also includes a rootfs to quickly kickstart
|
|
||||||
a local install
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
cat <<"EOF" >$RESULT_DIR/debian/rules
|
|
||||||
#!/usr/bin/make -f
|
|
||||||
# See debhelper(7) (uncomment to enable)
|
|
||||||
# output every command that modifies files on the build system.
|
|
||||||
#export DH_VERBOSE = 1
|
|
||||||
|
|
||||||
|
|
||||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
|
||||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
|
||||||
|
|
||||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
|
||||||
# package maintainers to append CFLAGS
|
|
||||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
|
||||||
# package maintainers to append LDFLAGS
|
|
||||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
|
||||||
|
|
||||||
|
|
||||||
%:
|
|
||||||
dh $@
|
|
||||||
|
|
||||||
|
|
||||||
# dh_make generated override targets
|
|
||||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
|
||||||
#override_dh_auto_configure:
|
|
||||||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##################
|
##################
|
||||||
## build initrd ##
|
## build initrd ##
|
||||||
|
@ -244,69 +170,61 @@ mkdir -p $TMP_DIR/initramfs/bin
|
||||||
wget -O $TMP_DIR/initramfs/bin/busybox https://www.busybox.net/downloads/binaries/1.26.1-defconfig-multiarch/busybox-x86_64
|
wget -O $TMP_DIR/initramfs/bin/busybox https://www.busybox.net/downloads/binaries/1.26.1-defconfig-multiarch/busybox-x86_64
|
||||||
chmod +x $TMP_DIR/initramfs/bin/busybox
|
chmod +x $TMP_DIR/initramfs/bin/busybox
|
||||||
|
|
||||||
cat > $TMP_DIR/initramfs/init << EOF
|
cat <<-"EOF" >$TMP_DIR/initramfs/init
|
||||||
#!/bin/busybox sh
|
#!/bin/busybox sh
|
||||||
|
|
||||||
# Dump to sh if something fails
|
# Dump to sh if something fails
|
||||||
error() {
|
error() {
|
||||||
echo "Jumping into the shell..."
|
echo "Jumping into the shell..."
|
||||||
setsid cttyhack sh
|
setsid cttyhack sh
|
||||||
}
|
}
|
||||||
|
|
||||||
# Populate /bin with binaries from busybox
|
# Populate /bin with binaries from busybox
|
||||||
/bin/busybox --install /bin
|
/bin/busybox --install /bin
|
||||||
|
|
||||||
mkdir -p /proc
|
mkdir -p /proc
|
||||||
mount -t proc proc /proc
|
mount -t proc proc /proc
|
||||||
|
|
||||||
mkdir -p /sys
|
mkdir -p /sys
|
||||||
mount -t sysfs sysfs /sys
|
mount -t sysfs sysfs /sys
|
||||||
|
|
||||||
mkdir -p /sys/dev
|
mkdir -p /sys/dev
|
||||||
mkdir -p /var/run
|
mkdir -p /var/run
|
||||||
mkdir -p /dev
|
mkdir -p /dev
|
||||||
|
|
||||||
mkdir -p /dev/pts
|
mkdir -p /dev/pts
|
||||||
mount -t devpts devpts /dev/pts
|
mount -t devpts devpts /dev/pts
|
||||||
|
|
||||||
# Populate /dev
|
# Populate /dev
|
||||||
echo /bin/mdev > /proc/sys/kernel/hotplug
|
echo /bin/mdev > /proc/sys/kernel/hotplug
|
||||||
mdev -s
|
mdev -s
|
||||||
|
|
||||||
mkdir -p /newroot
|
mkdir -p /newroot
|
||||||
mount -t tmpfs -o size=${SIZE}m tmpfs /newroot || error
|
mount -t tmpfs -o size=${SIZE}m tmpfs /newroot || error
|
||||||
|
|
||||||
echo "Extracting rootfs... "
|
echo "Extracting rootfs... "
|
||||||
xz -d -c -f rootfs.tar.xz | tar -x -f - -C /newroot || error
|
xz -d -c -f rootfs.tar.xz | tar -x -f - -C /newroot || error
|
||||||
|
|
||||||
mount --move /sys /newroot/sys
|
mount --move /sys /newroot/sys
|
||||||
mount --move /proc /newroot/proc
|
mount --move /proc /newroot/proc
|
||||||
mount --move /dev /newroot/dev
|
mount --move /dev /newroot/dev
|
||||||
|
|
||||||
exec switch_root /newroot /sbin/init || error
|
exec switch_root /newroot /sbin/init || error
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x $TMP_DIR/initramfs/init
|
chmod +x $TMP_DIR/initramfs/init
|
||||||
|
|
||||||
cd $TMP_DIR/newroot
|
tar -cJf $TMP_DIR/initramfs/rootfs.tar.xz -C $TMP_DIR/newroot .
|
||||||
tar cJf $TMP_DIR/initramfs/rootfs.tar.xz .
|
|
||||||
|
|
||||||
cd $TMP_DIR/initramfs
|
|
||||||
mkdir -p $RESULT_DIR
|
|
||||||
find . -print0 | cpio --null -ov --format=newc | gzip -9 > $RESULT_DIR/initramfs.gz
|
|
||||||
|
|
||||||
cp $TMP_DIR/newroot/boot/vmlinuz-* $RESULT_DIR/vmlinuz
|
cp $TMP_DIR/newroot/boot/vmlinuz-* $RESULT_DIR/vmlinuz
|
||||||
|
cd $TMP_DIR/initramfs
|
||||||
|
find . -print0 | cpio --null -ov --format=newc | gzip -9 > $RESULT_DIR/initramfs.gz
|
||||||
|
|
||||||
|
|
||||||
ls -la $RESULT_DIR/
|
ls -la $RESULT_DIR/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#############
|
|
||||||
## cleanup ##
|
|
||||||
#############
|
|
||||||
|
|
||||||
|
|
||||||
clean_debian
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
11
|
|
@ -0,0 +1,15 @@
|
||||||
|
Source: wit-pxeboot
|
||||||
|
Section: unknown
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: wit <netops@wit.com>
|
||||||
|
Build-Depends: debhelper (>= 11)
|
||||||
|
Standards-Version: 4.1.3
|
||||||
|
Homepage: http://www.wit.com
|
||||||
|
|
||||||
|
Package: wit-pxeboot
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends}, tftpd-hpa
|
||||||
|
Description: kernel and initrd to pxeboot debcore
|
||||||
|
kernel and initrd to boot a pxe image easily
|
||||||
|
it also includes a rootfs to quickly kickstart
|
||||||
|
a local install
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# See debhelper(7) (uncomment to enable)
|
||||||
|
# output every command that modifies files on the build system.
|
||||||
|
#export DH_VERBOSE = 1
|
||||||
|
|
||||||
|
|
||||||
|
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||||
|
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||||
|
|
||||||
|
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||||
|
# package maintainers to append CFLAGS
|
||||||
|
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||||
|
# package maintainers to append LDFLAGS
|
||||||
|
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||||
|
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
|
||||||
|
# dh_make generated override targets
|
||||||
|
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||||
|
#override_dh_auto_configure:
|
||||||
|
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
files/vmlinuz /srv/tftp/wit-pxeboot/
|
||||||
|
files/initramfs.gz /srv/tftp/wit-pxeboot/
|
||||||
|
files/debcore /srv/tftp/wit-pxeconfig/
|
||||||
|
files/install /srv/tftp/wit-pxeconfig/
|
||||||
|
files/localboot /srv/tftp/wit-pxeconfig/
|
|
@ -0,0 +1,9 @@
|
||||||
|
serial 1 115200
|
||||||
|
prompt 1
|
||||||
|
timeout 100
|
||||||
|
default debcore
|
||||||
|
|
||||||
|
|
||||||
|
label debcore
|
||||||
|
kernel wit-pxeboot/vmlinuz
|
||||||
|
append initrd=wit-pxeboot/initramfs.gz acpi=off console=tty0 console=ttyS1,115200n8 ---
|
|
@ -0,0 +1,9 @@
|
||||||
|
serial 1 115200
|
||||||
|
prompt 1
|
||||||
|
timeout 100
|
||||||
|
default install
|
||||||
|
|
||||||
|
|
||||||
|
label install
|
||||||
|
kernel wit-pxeboot/vmlinuz
|
||||||
|
append initrd=wit-pxeboot/initramfs.gz acpi=off console=tty0 console=ttyS1,115200n8 execstartup='sleep 60; /root/install.sh wit-network-config && echo -e "======\nSUCCESS\n======" || exit 1' ---
|
|
@ -0,0 +1,8 @@
|
||||||
|
serial 1 115200
|
||||||
|
prompt 1
|
||||||
|
timeout 100
|
||||||
|
default local
|
||||||
|
|
||||||
|
|
||||||
|
label local
|
||||||
|
LOCALBOOT -1
|
Loading…
Reference in New Issue