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;
