Create Jupyterhub Container on Centos 7 on Proxmox

These instructions show how to create a Centos 7 container on Proxmox running JupyterHub.

Note – the instructions are just a guide and for use on my environment – you may need/wish to adjust for your own environment as necessary.

Versions

root@billy:~# pveversion
pve-manager/4.4-12/e71b7a74 (running kernel: 4.4.40-1-pve)
The version of the notebook server is 4.4.1
Python 3.4.5 (default, Nov  9 2016, 16:24:59) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

Create Container

pct create 153 u01:vztmpl/centos-7-default_20160205_amd64.tar.xz -rootfs 10 -hostname jupyterhub -memory 2048 -nameserver 192.168.1.25 -searchdomain oramoss.com -net0 name=eth0,bridge=vmbr0,gw=192.168.1.1,ip=192.168.1.153/24 -swap 2048 -cpulimit 2 -storage u01

Installation

Update system

yum update -y
yum install epel-release -y
yum install
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle 

Install JDK

wget -y cd ~ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.rpm" 
yum localinstall jdk-8u111-linux-x64.rpm -y 
rm -f ~/jdk-8u111-linux-x64.rpm 
vi /etc/environment export 
 JAVA_HOME=/usr/java/jdk1.8.0_111/jre 
vi ~/.bash_profile 
 export PATH=${JAVA_HOME}/bin:$PATH 
. ~/.bash_profile 
java -version 

Install Oracle 7 Linux repo (works for Centos 7)

wget http://yum.oracle.com/public-yum-ol7.repo yum 

Install Python 3 And Jupyter Notebook

install python34 -y 
curl -O https://bootstrap.pypa.io/get-pip.py /usr/bin/python3.4 get-pip.py 
yum install npm nodejs-legacy -y
yum install anaconda -y 
python3 -m pip install jupyterhub 
npm config set strict-ssl false 
npm install -g configurable-http-proxy 
python3 -m pip install notebook 
wget ftp://ftp.icm.edu.pl/vol/rzm5/linux-slc/centos/7.0.1406/cernonly/x86_64/Packages/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm 
wget ftp://bo.mirror.garr.it/1/slc/centos/7.1.1503/cernonly/x86_64/Packages/oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm 
wget ftp://bo.mirror.garr.it/1/slc/centos/7.1.1503/cernonly/x86_64/Packages/oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm 
yum install oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm -y 
yum install oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm -y 
yum install oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm -y 
vi ~/.bash_profile 
  export ORACLE_HOME=/usr/lib/oracle/12.1/client64 
  export PATH=$ORACLE_HOME/bin:$PATH 
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH 
vi /etc/environment 
  export ORACLE_HOME=/usr/lib/oracle/12.1/client64 
  export PATH=$ORACLE_HOME/bin:$PATH 
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH 
. ~/.bash_profile 
yum install gcc -y 
yum install python-devel -y 
yum install python34-devel -y 
pip install cx_Oracle
pip install ipython-sql 
jupyterhub --generate-config 
vi /root/jupyterhub_config.py # ensure the following are set: 
  c.Spawner.env_keep = ['LD_LIBRARY_PATH'] 
  c.Spawner.environment = dict(LD_LIBRARY_PATH='/usr/lib/oracle/12.1/client64/lib:$LD_LIBRARY_PATH') 
systemctl stop firewalld 
systemctl disable firewalld 
vi /lib/systemd/system/jupyterhub.service 
  [Unit] 
  Description=Jupyterhub 
  After=network-online.target 
  [Service] 
  User=root ExecStart=/usr/bin/jupyterhub --ip=192.168.1.10 
  WorkingDirectory=/root 
  [Install] 
  WantedBy=multi-user.target 
systemctl enable jupyterhub 
systemctl start jupyterhub 
systemctl status jupyterhub

That should be it…navigate to http://192.168.1.153:8000 and login with a unix user on that node.

Feel free to comment...