#! /bin/sh # # PLEASE DO NOT EDIT IT DIRECTLY ON cloudmesh.github.io # # Instead if modifications are needed modify it here # # * https://github.com/cloudmesh/get/blob/main/pi/index.html # # Using python3 # # curl -Ls http://cloudmesh.github.io/get/pi | sh # # Using python3.9 # # VERSION='3.9.2' curl -Ls http://cloudmesh.github.io/get/pi | sh # # production: curl -Ls http://cloudmesh.github.io/get/pi | sh - # # development: curl -Ls https://raw.githubusercontent.com/cloudmesh/get/main/pi/index.html | sh - # #
start_total=`date +%s` NORMAL='\033[0m' RED='\033[0;31m' if [ -z "$VERSION" ] then VERSION='3' PYTHON="python3" PIP="pip3" else PYTHON="python${VERSION%.*}" PIP="pip{VERSION%.*}" fi AddToBashrc(){ grep -qF -- "${1}" ~/.bashrc || echo "${1}" >> "${HOME}/.bashrc" } Echo() { echo "${RED}${1}${NORMAL}" } Echo "#################################################" Echo "# Raspbery Pi Cloudmesh Cluster Installation #" Echo "#################################################" echo echo "Aproximate instalation time: 4-7 minutes" echo echo "Using Python ${VERSION}" echo "Expecting it to be accessible via $PYTHON" echo Echo "# -----------------------------------------------" Echo "# Update the system" Echo "# -----------------------------------------------" start_update=`date +%s` sudo apt-get update sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak sudo cp /etc/ssh/sshd_config.orig /etc/ssh/sshd_config sudo apt-get full-upgrade -y sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config sudo apt-get install -y autossh sudo systemctl restart sshd sudo apt-get install -y nmap sudo apt-get install -y libatlas-base-dev sudo apt-get install -y pv sudo apt-get install -y libjpeg-dev sudo apt-get install -y git sudo apt-get install -y libopenjp2-7 sudo apt-get install -y libtiff5 end_update=`date +%s` echo Echo "# -----------------------------------------------" Echo "# Create a Python Virtual Env ~/ENV3" Echo "# -----------------------------------------------" start_venv=`date +%s` sudo apt-get install python3-venv python3-wheel python3-dev build-essential -y ${PYTHON} -m venv ~/ENV3 . ${HOME}/ENV3/bin/activate pip install pip -U which python which pip python --version pip --version pip install cython -U end_venv=`date +%s` echo Echo "# -----------------------------------------------" Echo "# Install cloudmesh" Echo "# -----------------------------------------------" start_cloudmesh=`date +%s` pip install cloudmesh-installer -U mkdir -p ${HOME}/cm cd ${HOME}/cm cloudmesh-installer get pi #### BEGIN WINDOWS BRANCH. IT IS ALSO THE BBRANCH FOR PI LINUX AND MAC E.G. THE NEW VERSION # IN FUTURE THIS SECTION WILL BE REMOVED AND THE BRANCH WILL BE RENAMED TO main # Temporarily use the windows mods als as we have not yet made it to main cd ${HOME}/cm/cloudmesh-pi-burn git checkout windows install -e . cd ${HOME}/cm/cloudmesh-inventory git checkout windows pip install -e . #### END WINDOWS BRANCH end_cloudmesh=`date +%s` cd ${HOME} Echo "# -----------------------------------------------" Echo "# Create ssh key if it does not exist" Echo "# -----------------------------------------------" FILE=$HOME/.ssh/id_rsa.pub if [ ! -e "$FILE" ]; then mkdir -p -m 700 $HOME/.ssh yes y | ssh-keygen -q -N "" -f $HOME/.ssh/id_rsa fi echo Echo "# -----------------------------------------------" Echo "# Update .bashrc" Echo "# -----------------------------------------------" echo AddToBashrc 'if [ -z "$SSH_AUTH_SOCK" ] ; then eval "$(ssh-agent -s)"; fi' AddToBashrc "ssh-add" AddToBashrc 'source ${HOME}/ENV3/bin/activate' Echo "#################################################" Echo "# Install Completed #" Echo "#################################################" echo end_total=`date +%s` time_update=$((end_update-start_update)) time_total=$((end_total-start_total)) time_venv=$((end_venv-start_venv)) time_cloudmesh=$((end_cloudmesh-start_cloudmesh)) echo echo echo "Time to update and upgarde: ${time_update} s" echo "Time to install the venv: ${time_venv} s" echo "Time to install cloudmesh: ${time_cloudmesh} s" echo echo "Time for total install: ${time_total} s" echo echo "Time to install: ${time_total} s" echo Echo "#################################################" echo Echo "Please activate with" echo Echo " source ~/ENV3/bin/activate" echo Echo "Followed by a reboot" exit 0 #