­

使用雲服務器從0開始搭建雲端Jupyter Lab|Notebook

0、購買雲服務器

購買服務器我只推薦硅雲,因為香港服務器免備案!而且25歲以下僅需10元每月,至少可買3年!每年享有多次原價續費機會,可補價升級配置。

硅雲服務器首頁://www.vpsor.cn?userCode=qh1dc78

VPS購買頁://www.vpsor.cn/activity/cloudsite?userCode=qh1dc78

1、安裝寶塔面板

Centos安裝腳本

yum install -y wget && wget -O install.sh //download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

Ubuntu/Deepin安裝腳本

wget -O install.sh //download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

寶塔面板7.9.2開心版[不是很必要]

功能介紹:
系統工具:日誌清理工具 增加 2.0版本!
寶塔插件:堡塔網站加速 增加 4.2版本!
專業版插件:網站監控報表 增加 6.8版本!
企業版插件:堡塔防提權 改名 堡塔防入侵!
企業版插件:堡塔限制訪問型證書-Linux版 增加 1.2版本!
第三方插件:Nginx免費防火牆 更新 6.3版本!
第三方插件:百度網盤 更新 3.9版本!
部分第三方插件已經全部更新同步官方!
修復第三方插件百度網盤無法使用問題!
修復已知道的一些插件到期的問題!
修復第一次安裝腳本,需要退出登錄重登才能安裝插件的邏輯問題!
修復部分用戶登錄虛擬賬戶無法獲取列表 authlist空白 的問題!
修復 危險級別:特高 去除寶塔因為賬戶跟寶塔不匹配封 ban用戶ip風險的問題(導致恢復免費版也無法使用,只能降級7.7.0 才能使用)!
已支持 Arm 架構!!!
一鍵腳本代碼:

curl //www.ddayun.cn/bt/update6.sh|bash

ps:安裝寶塔面板僅僅是為了操作文件更加方便!
寶塔面板安裝完成後,你會獲得登錄網址和賬戶密碼

2、配置python環境

鑒於python學習進階需要使用多個不同版本的Python虛擬環境來實現不同項目的部署,我建議安裝Anaconda3來進行Python環境管理。

這裡可以選擇自己想要的anaconda版本,不同版本自帶的python版本也不相同,此處我選擇2021.04

官網鏡像://repo.anaconda.com/archive/

清華鏡像://repo.continuum.io/archi

首先安裝curl方法:

yum update -y && yum install curl -y

或者wget方法:

yum -y install wget

curl和wget的區別://www.cnblogs.com/lsdb/p/7171779.html

下載安裝包

curl //repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh
#或者
wget //repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh

使用bash命令安裝anaconda(名字要對應):

bash Anaconda3-2021.04-Linux-x86_64.sh

按照安裝提示,鍵入回車:

Please, press ENTER  to continue
>>> ENTER

同意安裝協議

安裝此版本時,會強制用戶看完整個協議,直接一路回車就行,直到看到確認信息

# 輸入yes,表示同意安裝協議
Do you accept the license terms? [yes|no][no] 
>>> yes

確認安裝路徑(可修改,也可以使用自定義):

#使用默認路徑,直接鍵入回車,使用自定義路徑,直接輸入安裝路徑
#此處使用 /opt/anaconda3作為安裝路徑
Anaconda3 will now be installed into this location:
/root/anaconda3  

- Press ENTER to confirm the location  
- Press CTRL-C to abort the installation  
- Or specify a different location below

[/root/anaconda3] >>> /opt/anaconda3

環境變量初始化

#此處詢問是否初始化conda的環境,直接輸入yes
Do you wish the installer to initialize Anaconda3
by running conda init? 

[yes|no][no] >>> yes

初始化時,anaconda將配置寫入了~/.bashrc 文件,直接執行

source ~/.bashrc

後即可正常使用了。

安裝完成後,如果是手動選擇的路徑,那麼最好手動添加環境變量

export PATH=/你的安裝路徑/anaconda3/bin:$PATH

下一步我們建立Tensorflow環境,供以後使用

conda create -n tensorflow python=3.5
source activeate tensorflow
conda install -c conda-forge tensorflow

3.配置Jupyter

3.1配置Jupyter Notebook

然後我們就可以開始配置Jupyter Notebook了,

我直接使用root用戶安裝(若服務器有重要價值的話十分不推薦使用此方法,創建用戶方法可參考文末的引用文章)

生成Notebook密碼:

#進入python環境
python
>>> from notebook.auth import passwd
>>> passwd()

控制台會提示輸入密碼兩次,並生成一段sha1加密碼,請複製並保留它,稍後會用到,

Enter password:
Verify password:
'argon2:a52.....'

#退出python環境
>>>quit()

然後我們要生成Jupyter Notebook配置文件,並使用vim命令修改

jupyter notebook --generate-config
vim ~/.jupyter/jupyter_notebook_config.py

在配置文件末尾添加如下內容:

# 允許通過任意綁定服務器的ip訪問
c.NotebookApp.ip = '*'
# 用於訪問的端口
c.NotebookApp.port = 80
# 不自動打開瀏覽器
c.NotebookApp.open_browser = False
# 設置登錄密碼
c.NotebookApp.password = 剛剛生成的sha1密碼

我不喜歡vim這個垃*F**k文本編輯器,所以我在寶塔改好,直接上傳。

*後期我打算直接綁定二級域名,因此使用80端口(出於安全考慮,不建議,但想要域名不用加端口號,最方便的是80端口)

*還可以在配置文件中綁定SSL證書,待補充

配置文件修改完成後,因為我使用的是80端口,需要關閉CentOS內置的httpd服務以免端口衝突。

service httpd stop

調試階段直接用:

#退出ssh終端則停止運行,--allow root允許管理員賬戶
jupyter notebook --allow-root

最後用nohup命令啟動notebook,確保ssh終端關閉後服務在後台繼續運行:

#no hang up不需要終端掛起
nohup jupyter notebook --allow-root

最後我還將子域名”nb.我的域名”的DNS指向VPS地址,我就可以通過”nb.我的域名”直接訪問Notebook了!

3.2配置jupyter lab

安裝jupyter lab

#pip安裝 (base)
pip install jupyterlab==3
pip install jupyterlab-language-pack-zh-CN # 安裝中文界面
#conda安裝
conda install -y -c conda-forge jupyterlab==3
pip install jupyterlab-language-pack-zh-CN # 使用pip安裝中文界面

在Jupyter Lab的網頁中,點擊:
Settings→Language→Chinese (simplified, china) (中文 (簡體,中國))

JupyterLab 可以通過condapippipenvordocker的方式安裝。

# conda
conda install -c conda-forge jupyterlab

# pip
pip install jupyterlab

安裝 nb_conda_kernels*

nb_conda_kernels 是一個 Jupyter 的擴展功能(extension),可以管理多個 Conda 環境下的 Jupyter 核心(kernels),整合多 Conda 環境中各種不同版本的 Python 或 R 等語言。

nb_conda_kernels 必須安裝在在 Jupyter(Jupyter Notebook 或 JupyterLab)所在的 Conda 環境中,可以直接放在 base 環境中,或是另外建立獨立的 Conda 環境亦可。

這裡我們建立一哥新的 Conda 環境,專門用於放置 JupyterLab:

# 建立 Conda 環境,並安裝 JupyterLab
conda create --name jupyterlab python=3.7 jupyterlab

在此 Conda 環境加裝 nb_conda_kernels 擴展功能套件:

# 安裝 nb_conda_kernels 擴展功能套件
conda install --name jupyterlab nb_conda_kernels

安裝 Jupyter Kernels*

所有需要在 Jupyter 中透過nb_conda_kernels來使用 Conda 環境,都需要安裝對應語言的的 Jupyter 核心(kernels)。

建立一個 Python 2.7 的 Conda 環境:

# 建立 Python 2.7 的 Conda 環境
conda create --name Python2 python=2.7.18

# 安裝 Python 的 Jupyter 核心
conda install --name Python ipykernel

建立一個 R-4.0.2 的 Conda 環境:

# 建立 R 4.0.2 的 Conda 環境
conda create --name R-4.0.2 --channel r r-essentials=4.0.2 r-base=4.0.2

# 安裝 R 的 Jupyter 核心
conda install --name R-4.0.2 --channel r r-irkernel

配置jupyter lab

生成 jupyterlab 配置文件

使用--generate-config參數,生成 jupyterlab 配置文件。

$ jupyter lab --generate-config

將之前notebook的配置文件那幾行複製一下,寫入jupyter_lab_config.py

啟動

安裝好所有的 Conda 環境以及對應的 Jupyter 核心之後,就可以依照一般的方式啟動 JupyterLab環境:

# 載入 Jupyter 的 Conda 環境(下面兩種方式都可以激活)*
$ conda activate jupyterlab 
$ source activate jupyterlab

# 載入 Conda 的 Base 環境*
$ conda activate base
$ source activate base

啟動 JupyterLab

如果想同時實現notebook和lab兩種python工具,那麼運行jupyter lab就可以了!

#最終只需要運行下面的命令
#退出終端則停止(調試)
$ jupyter lab --allow-root
#掛起
$ nohup jupyter lab --allow-root

附:如果登錄jupyter密碼錯誤,則需要修改jupyter_notebook_config.json密碼

#jupyter_notebook_config.json has higher priority
$ jupyter notebook password

#結果
[JupyterPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_server_config.json

4.域名代理及計劃任務

由於我們使用了80端口,那麼解析域名就很簡單了。

我使用的是DnsPod來解析,主機記錄指的是二級域名即將jupyter指向nb.你的域名

完成這一步就可以通過域名訪問你的雲端jupyter服務了。

最後我們再寶塔添加一個計劃任務,防止進程中斷

#!/bin/bash
kill $(lsof -t -i:80)
export PATH=/root/anaconda3/bin:$PATH
#執行任務
nohup jupyter lab --allow-root


從日誌來看,我們已經成功添加定時任務:

原創作者:孤飛-博客園
原文地址://www.cnblogs.com/ranxi169/p/16531863.html

Tags: