服務(wù)器Jupyter Notebook和Samba的安裝及部署

——by不是殺殺
Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成(來自百度百科),簡(jiǎn)單來說它可以實(shí)現(xiàn)服務(wù)器端(Linux)與Windows端之間的文件共享。而Jupyter Notebook是大家熟悉的交互式筆記本,我認(rèn)為是一個(gè)非常方便的開發(fā)工具。通過Samba將Jupyter的工作目錄設(shè)置為Windows可訪問的共享目錄,將大大提高工作效率。正如如下圖所示,可以在Windows中非常方便地讀取、上傳已經(jīng)修改Jupyter工作目錄下的文件。


image.png

image.png

一、Samba

其安裝及部署需要root權(quán)限

1. 準(zhǔn)備工作

### 關(guān)閉防火墻
systemctl stop firewalld.service
### 關(guān)閉SeLinux
#### 查看SeLinux狀態(tài)
sestatus
setenforce 0
sestatus

2. 安裝

### 安裝samba
yum install samba
### 查看安裝狀態(tài)
rpm -qa|grep samba

Samba服務(wù)器安裝完畢,會(huì)生成配置文件目錄/etc/samba,/etc/samba/smb.conf是samba的核心配置文件

### 查看SMB服務(wù)狀態(tài)
service smb status
### 啟動(dòng)SMB服務(wù)
systemctl start smb
### 設(shè)置開機(jī)自啟
systemctl enable smb

3. samba配置

cd /etc/samba/  ##切換到Samba配置文件目錄
mv smb.conf smb.conf.bak  ##備份
grep -v "#" smb.conf.bak > smb.conf  ##重新創(chuàng)建一個(gè)配置文件(除去注釋的)
vim smb.conf  ##修改配置文件
[global]                   ##全局
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        map to guest = Bad User   ##添加此項(xiàng),開啟匿名用戶訪問
[HLABshare]                   ##添加的share文件
        path=/home/share            ##路徑
        public=yes              ##公共訪問
        browseable=yes          ##能夠訪問
        writable=yes             ##寫權(quán)限
        create mask=0644        ##設(shè)置權(quán)限
        directory mask=0755

path=/home/share需要共享的目錄路徑
samba可以用testparm命令來測(cè)試smb.conf配置檔的合法性

mkdir /home/share   ##創(chuàng)建目錄
chmod 755 /home/share  ##設(shè)置權(quán)限
systemctl restart smb.service  ##重啟Samba服務(wù)

修改文件創(chuàng)建的默認(rèn)權(quán)限

### 在[HLABshare]中加入以下配置
create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755

權(quán)限沖突問題
因?yàn)镴upyter是由A賬戶安裝的,因此會(huì)發(fā)現(xiàn)在share文件夾中通過Jupyter生成的文件其權(quán)限是屬于賬戶A的,而通過Samba訪問的Windows用戶在該文件夾下創(chuàng)建文件,由于配置文件中的map to guest = Bad User 設(shè)置,導(dǎo)致創(chuàng)建的文件是屬于nobody賬戶的,因此會(huì)出現(xiàn)權(quán)限沖突的問題,當(dāng)然這個(gè)問題如果嚴(yán)謹(jǐn)一些應(yīng)該通過為每個(gè)Windows客戶端訪問的人創(chuàng)建賬戶等方法來解決,但是我還是選擇了比較簡(jiǎn)單但是不夠安全的做法:(其他解決方法歡迎評(píng)論區(qū)留言)

## 在配置中加入
# 在 [global] 放入以下內(nèi)容
force user = 帳號(hào)
force group = 群組

其中賬號(hào)和群組與安裝Jupyter的賬號(hào)一致。

二、Jupyter

1. 安裝miniconda

# 創(chuàng)建一個(gè)目錄用于放miniconda安裝包
mkdir miniconda
# 下載miniconda
wget  https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh --no-check-certificate
# 安裝
bash Miniconda3-latest-Linux-x86_64.sh
# 有提示選擇輸入yes
# 安裝完之后需要重啟客戶端(把連接服務(wù)器的窗口關(guān)掉再打開)
# 換成清華源
conda  config  --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda  config  --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2. 為jupyter創(chuàng)建一個(gè)conda的環(huán)境

# jupyter 是創(chuàng)建的環(huán)境名稱
conda create -n jupyter
# 激活(進(jìn)入)創(chuàng)建的環(huán)境
conda activate jupyter
# 退出當(dāng)前環(huán)境
conda deactivate

3. 安裝R內(nèi)核及jupyter

# 安裝R內(nèi)核
conda install r-recommended r-irkernel
# 安裝jupyter
conda install Jupyter
# 在R中連接jupyter
R -e 'IRkernel::installspec()'

4. 啟動(dòng)jupyter

# 指定IP和端口,其中IP為服務(wù)器的IP,端口為服務(wù)器開放的端口
jupyter notebook --no-browser --port 8888 --ip=172.16.0.xxx

以上運(yùn)行方式,當(dāng)斷開端口時(shí)jupyter會(huì)被殺死,因此平常采用如下運(yùn)行方式:

# 方法一:在tmux中啟動(dòng)
tmux 
# 進(jìn)如不間斷連接的端口
conda activate jupyter
jupyter notebook  /home/share --no-browser --port 8888 --ip=172.16.0.xxx
# 方法二:通過nohup &來后臺(tái)運(yùn)行
nohup jupyter notebook  /home/share --no-browser --port 8888 --ip=172.16.0.xxx &

Jupyter的其他配置

修改jupyter密碼

# 生成jupyter配置文件
jupyter notebook --generate-config
# 將固定的密碼轉(zhuǎn)換成sha1加密
jupyter notebook password
# 兩次輸入要設(shè)置的密碼
image.png

將sha1寫到配置文件中

cat jupyter_notebook_config.json
# 復(fù)制password部分
# 修改配置文件
vim jupyter_notebook_config.py
# 在vim中搜索passwd
/password
image.png

將c.NotebookApp.password的注釋去掉,保存配置文件后重啟jupyter

指定工作目錄

這里指定為上一步Samba設(shè)置的共享目錄。

# 啟動(dòng)時(shí)指定目錄
jupyter notebook [dir] --no-browser --port 8888 --ip=172.16.0.xxx
#如
jupyter notebook  /home/share --no-browser --port 8888 --ip=172.16.0.123
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容