docklet/tools/update-basefs.sh

132 lines
3.4 KiB
Bash
Executable File

#!/bin/sh
## WARNING
## This sript is just for my own convenience . my image is
## based on Ubuntu xenial. I did not test it for other distros.
## Therefore this script may not work for your basefs image.
##
if [ "$1" != "-y" ] ; then
echo "This script will update your basefs. backup it first."
echo "then run: $0 -y"
exit 1
fi
# READ docklet.conf
FS_PREFIX=/opt/docklet
BASEFS=$FS_PREFIX/local/basefs
CONF=../conf/docklet.conf
echo "Reading $CONF"
if [ -f $CONF ] ; then
. $CONF
BASEFS=$FS_PREFIX/local/basefs
echo "$CONF exit, basefs=$BASEFS"
else
echo "$CONF not exist, default basefs=$BASEFS"
fi
if [ ! -d $BASEFS ] ; then
echo "Checking $BASEFS: not exist, FAIL"
exit 1
else
echo "Checking $BASEFS: exist. "
fi
echo "[*] Copying start_jupyter.sh to $BASEFS/home/jupyter"
mkdir -p $BASEFS/home/jupyter
cp start_jupyter.sh $BASEFS/home/jupyter
echo ""
echo "[*] Changing $BASEFS/etc/network/interfaces using static"
echo "Original network/interfaces is"
cat $BASEFS/etc/network/interfaces | sed 's/^/OLD /'
sed -i -- 's/dhcp/static/g' $BASEFS/etc/network/interfaces
# setting resolv.conf, use your own resolv.conf for your image
echo "[*] Setting $BASEFS/etc/resolv.conf"
cp resolv.conf $BASEFS/etc/resolvconf/resolv.conf.d/base
echo "[*] Masking console-getty.service"
chroot $BASEFS systemctl mask console-getty.service
echo "[*] Masking system-journald.service"
chroot $BASEFS systemctl mask systemd-journald.service
echo "[*] Masking system-logind.service"
chroot $BASEFS systemctl mask systemd-logind.service
echo "[*] Masking dbus.service"
chroot $BASEFS systemctl mask dbus.service
echo "[*] Disabling apache2 service(if installed)"
if [ -d $BASEFS/etc/apache2 ] ; then
chroot $BASEFS update-rc.d apache2 disable
fi
echo "[*] Disabling ondemand service(if installed)"
chroot $BASEFS update-rc.d ondemand disable
echo "[*] Disabling dbus service(if installed)"
chroot $BASEFS update-rc.d dbus disable
echo "[*] Disabling mysql service(if installed)"
if [ -d $BASEFS/etc/mysql ] ; then
chroot $BASEFS update-rc.d mysql disable
fi
echo "[*] Disabling nginx service(if installed)"
if [ -d $BASEFS/etc/nginx ] ; then
chroot $BASEFS update-rc.d nginx disable
fi
echo "[*] Setting worker_processes of nginx to 1(if installed)"
[ -f $BASEFS/etc/nginx/nginx.conf ] && sed -i -- 's/worker_processes\ auto/worker_processes\ 1/g' $BASEFS/etc/nginx/nginx.conf
echo "[*] Deleting default /etc/nginx/sites-enabled/default"
rm -f $BASEFS/etc/nginx/sites-enabled/default
echo "[*] Copying vimrc.local to $BASEFS/etc/vim/"
cp vimrc.local $BASEFS/etc/vim
echo "[*] Copying pip.conf to $BASEFS/root/.pip/"
mkdir -p $BASEFS/root/.pip/
cp pip.conf $BASEFS/root/.pip
echo "[*] Copying npmrc to $BASEFS/root/.npmrc"
cp npmrc $BASEFS/root/.npmrc
echo "[*] Copying DOCKLET_NOTES.txt to $BASEFS/root/DOCKLET_NOTES.txt"
cp DOCKLET_NOTES.txt $BASEFS/root/
echo "[*] Updating USER/.ssh/config to disable StrictHostKeyChecking"
for f in $FS_PREFIX/global/users/* ; do
cat <<EOF > $f/ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
EOF
done
echo "[*] Generating $BASEFS/home/spark/sbin/dl_{start|stop}_spark.sh for Spark"
if [ -d $BASEFS/home/spark/sbin ] ; then
cp dl_*_spark.sh $BASEFS/home/spark/sbin
fi
echo "[*] Generating $BASEFS/root/{R|python}_demo.ipynb"
if [ -d $BASEFS/root/ ] ; then
cp R_demo.ipynb python_demo.ipynb $BASEFS/root/
fi