Difference between revisions of "Netboot Template"
From Amahi Wiki
(16 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<u>'''INSTALL'''</u> | <u>'''INSTALL'''</u> | ||
− | + | <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='/ | + | export NBPATH='/var/lib/tftpboot'; |
− | |||
− | # Start of | + | # Start of Install |
− | cat > | + | cat > ../install.sh << EOF |
#!/bin/bash | #!/bin/bash | ||
− | mkdir -p $NBPATH/$ | + | echo Copying files; |
− | # Copy | + | mkdir -p $NBPATH/$HDA_APP_NAME; |
− | cp | + | # Copy files to Netboot |
+ | cp ../files/live/vmlinuz ../files/live/initrd.img ../files/live/filesystem.squashfs -d $NBPATH/$HDA_APP_NAME; | ||
+ | |||
# 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 " | + | echo "Removing source files"; |
− | # End of | + | rm -rf ../files; |
+ | echo "Install complete"; | ||
+ | # End of Install | ||
EOF | EOF | ||
− | # Start of | + | # Start of Uninstall |
− | cat > | + | cat > ../uninstall.sh << EOF |
#!/bin/bash | #!/bin/bash | ||
− | + | echo Removing files; | |
− | rm -rf $NBPATH/$ | + | rm -rf ../files; |
− | rm -rf $NBPATH/conf/$ | + | rm -rf $NBPATH/$HDA_APP_NAME; |
− | rm -rf $NBPATH/menu/$ | + | 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; | cp $NBPATH/pxelinux.cfg/default.bu $NBPATH/pxelinux.cfg/default; | ||
+ | if [ -f $NBPATH/menu/*.mnu ]; then | ||
cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | cat $NBPATH/menu/*.mnu >> $NBPATH/pxelinux.cfg/default | ||
− | echo " | + | fi |
− | # End of | + | echo "Uninstall complete"; |
+ | # 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 | + | LABEL $HDA_APP_NAME |
− | MENU LABEL | + | MENU LABEL $HDA_APP_NAME |
kernel menu.c32 | kernel menu.c32 | ||
− | append conf/ | + | append conf/$HDA_APP_NAME.conf |
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 | + | MENU TITLE $HDA_APP_NAME |
− | LABEL | + | 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 | EOF | ||
− | + | chmod 755 ../install.sh ../uninstall.sh; | |
− | + | cp ../install.sh .; | |
− | + | sudo ./install.sh; | |
− | + | cd ..; | |
− | + | rm -rf elevated; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | rm -rf *.zip;</pre> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<u>'''UNINSTALL'''</u> | <u>'''UNINSTALL'''</u> | ||
− | + | <pre># Uninstall | |
− | + | mkdir -p elevated; | |
− | |||
− | # Uninstall | ||
− | mkdir elevated; | ||
cd elevated; | cd elevated; | ||
− | cp | + | cp ../uninstall.sh .; |
− | sudo ./uninstall | + | sudo ./uninstall.sh; |
cd ..; | cd ..; | ||
− | rm -rf elevated; | + | 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;