Difference between revisions of "Netboot Template"
From Amahi Wiki
Line 1: | Line 1: | ||
<u>'''INSTALL'''</u> | <u>'''INSTALL'''</u> | ||
− | <pre># App specific variables | + | <pre>#Temp download/extract files |
− | + | mkdir -p files; | |
+ | echo Extracting files; | ||
+ | unzip -q source-file -d files; | ||
+ | |||
+ | mkdir -p elevated; | ||
+ | cd elevated; | ||
+ | |||
+ | # App specific variables | ||
# Constant variables--DO NOT CHANGE | # Constant variables--DO NOT CHANGE | ||
export NBPATH='/var/lib/tftpboot'; | export NBPATH='/var/lib/tftpboot'; | ||
# Start of Install | # Start of Install | ||
− | cat > | + | cat > ../install.sh << EOF |
#!/bin/bash | #!/bin/bash | ||
− | + | echo Copying files; | |
mkdir -p $NBPATH/$HDA_APP_NAME; | mkdir -p $NBPATH/$HDA_APP_NAME; | ||
# Copy files to Netboot | # Copy files to Netboot | ||
− | + | cp ../files/live/vmlinuz ../files/live/initrd.img ../files/live/filesystem.squashfs -d $NBPATH/$HDA_APP_NAME; | |
− | cp ../ | ||
# Update PXE Menu | # Update PXE Menu | ||
+ | echo Backing up menu; | ||
if [ -f $NBPATH/pxelinux.cfg/default.bu ]; then | if [ -f $NBPATH/pxelinux.cfg/default.bu ]; then | ||
cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default | cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default | ||
Line 21: | Line 28: | ||
fi | fi | ||
# Append app menu to default | # Append app menu to default | ||
+ | echo Updating menu; | ||
if [ -d $NBPATH/menu ]; then | if [ -d $NBPATH/menu ]; then | ||
− | cp | + | cp ../$HDA_APP_NAME.mnu $NBPATH/menu |
cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | ||
else | else | ||
mkdir $NBPATH/menu | mkdir $NBPATH/menu | ||
− | cp | + | cp ../$HDA_APP_NAME.mnu $NBPATH/menu |
cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | ||
fi | fi | ||
# Copy submenu (if needed) to conf | # Copy submenu (if needed) to conf | ||
if [ -d $NBPATH/conf ]; then | if [ -d $NBPATH/conf ]; then | ||
− | cp | + | cp ../$HDA_APP_NAME.conf $NBPATH/conf |
else | else | ||
mkdir $NBPATH/conf | mkdir $NBPATH/conf | ||
− | cp | + | cp ../$HDA_APP_NAME.conf $NBPATH/conf |
fi | fi | ||
− | + | echo "Removing source files"; | |
− | rm -rf ../ | + | rm -rf ../files; |
− | echo " | + | echo "Install complete"; |
# End of Install | # End of Install | ||
EOF | EOF | ||
# Start of Uninstall | # Start of Uninstall | ||
− | cat > | + | cat > ../uninstall.sh << EOF |
#!/bin/bash | #!/bin/bash | ||
− | + | echo Removing files; | |
+ | rm -rf ../files; | ||
rm -rf $NBPATH/$HDA_APP_NAME; | rm -rf $NBPATH/$HDA_APP_NAME; | ||
rm -rf $NBPATH/conf/$HDA_APP_NAME.conf; | rm -rf $NBPATH/conf/$HDA_APP_NAME.conf; | ||
rm -rf $NBPATH/menu/$HDA_APP_NAME.mnu; | rm -rf $NBPATH/menu/$HDA_APP_NAME.mnu; | ||
+ | echo Restoring menu backup; | ||
cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default; | cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default; | ||
if [ -f $NBPATH/menu/*.mnu ]; then | if [ -f $NBPATH/menu/*.mnu ]; then | ||
cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | ||
fi | fi | ||
− | echo " | + | echo "Uninstall complete"; |
# End of Uninstall | # End of Uninstall | ||
EOF | EOF | ||
# This needs to be changed to match the app. This can be a single menu or link to a sub menu | # This needs to be changed to match the app. This can be a single menu or link to a sub menu | ||
− | cat > | + | cat > ../$HDA_APP_NAME.mnu << EOF |
LABEL $HDA_APP_NAME | LABEL $HDA_APP_NAME | ||
MENU LABEL $HDA_APP_NAME | MENU LABEL $HDA_APP_NAME | ||
Line 63: | Line 73: | ||
EOF | EOF | ||
# This is specific to the app and may not be needed. It generates a sub menu | # This is specific to the app and may not be needed. It generates a sub menu | ||
− | cat > | + | cat > ../$HDA_APP_NAME.conf << EOF |
MENU TITLE $HDA_APP_NAME | MENU TITLE $HDA_APP_NAME | ||
LABEL $HDA_APP_NAME | LABEL $HDA_APP_NAME | ||
Line 69: | Line 79: | ||
kernel $HDA_APP_NAME/vmlinuz | kernel $HDA_APP_NAME/vmlinuz | ||
append initrd=$HDA_APP_NAME/initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://$HDA_IP/$HDA_APP_NAME/filesystem.squashfs live-config | append initrd=$HDA_APP_NAME/initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://$HDA_IP/$HDA_APP_NAME/filesystem.squashfs live-config | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
EOF | EOF | ||
− | + | chmod 755 ../install.sh ../uninstall.sh; | |
− | + | cp ../install.sh .; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | cp | ||
sudo ./install.sh; | sudo ./install.sh; | ||
cd ..; | cd ..; | ||
− | rm -rf elevated;</pre> | + | rm -rf elevated; |
+ | |||
+ | rm -rf *.zip;</pre> | ||
<u>'''UNINSTALL'''</u> | <u>'''UNINSTALL'''</u> | ||
− | <pre> | + | <pre># Uninstall |
− | + | mkdir -p elevated; | |
− | # Uninstall | ||
− | mkdir elevated; | ||
cd elevated; | cd elevated; | ||
− | cp | + | cp ../uninstall.sh .; |
sudo ./uninstall.sh; | sudo ./uninstall.sh; | ||
cd ..; | cd ..; | ||
rm -rf elevated;</pre> | rm -rf elevated;</pre> |
Latest revision as of 04:02, 29 March 2015
INSTALL
#Temp download/extract files mkdir -p files; echo Extracting files; unzip -q source-file -d files; mkdir -p elevated; cd elevated; # App specific variables # Constant variables--DO NOT CHANGE export NBPATH='/var/lib/tftpboot'; # Start of Install cat > ../install.sh << EOF #!/bin/bash echo Copying files; mkdir -p $NBPATH/$HDA_APP_NAME; # Copy files to Netboot cp ../files/live/vmlinuz ../files/live/initrd.img ../files/live/filesystem.squashfs -d $NBPATH/$HDA_APP_NAME; # Update PXE Menu echo Backing up menu; if [ -f $NBPATH/pxelinux.cfg/default.bu ]; then cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default else cp $NBPATH/pxelinux.cfg/default $NBPATH/pxelinux.cfg/default.bu fi # Append app menu to default echo Updating menu; if [ -d $NBPATH/menu ]; then cp ../$HDA_APP_NAME.mnu $NBPATH/menu cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default else mkdir $NBPATH/menu cp ../$HDA_APP_NAME.mnu $NBPATH/menu cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default fi # Copy submenu (if needed) to conf if [ -d $NBPATH/conf ]; then cp ../$HDA_APP_NAME.conf $NBPATH/conf else mkdir $NBPATH/conf cp ../$HDA_APP_NAME.conf $NBPATH/conf fi echo "Removing source files"; rm -rf ../files; echo "Install complete"; # End of Install EOF # Start of Uninstall cat > ../uninstall.sh << EOF #!/bin/bash echo Removing files; rm -rf ../files; rm -rf $NBPATH/$HDA_APP_NAME; rm -rf $NBPATH/conf/$HDA_APP_NAME.conf; rm -rf $NBPATH/menu/$HDA_APP_NAME.mnu; echo Restoring menu backup; cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default; if [ -f $NBPATH/menu/*.mnu ]; then cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default fi echo "Uninstall complete"; # End of Uninstall EOF # This needs to be changed to match the app. This can be a single menu or link to a sub menu cat > ../$HDA_APP_NAME.mnu << EOF LABEL $HDA_APP_NAME MENU LABEL $HDA_APP_NAME kernel menu.c32 append conf/$HDA_APP_NAME.conf EOF # This is specific to the app and may not be needed. It generates a sub menu cat > ../$HDA_APP_NAME.conf << EOF MENU TITLE $HDA_APP_NAME LABEL $HDA_APP_NAME MENU LABEL $HDA_APP_NAME kernel $HDA_APP_NAME/vmlinuz append initrd=$HDA_APP_NAME/initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://$HDA_IP/$HDA_APP_NAME/filesystem.squashfs live-config EOF chmod 755 ../install.sh ../uninstall.sh; cp ../install.sh .; sudo ./install.sh; cd ..; rm -rf elevated; rm -rf *.zip;
UNINSTALL
# Uninstall mkdir -p elevated; cd elevated; cp ../uninstall.sh .; sudo ./uninstall.sh; cd ..; rm -rf elevated;