2022 Fall w4-w5

2022 Fall w4 繼續說明網路設定與個人網頁維護. 2022 Fall w5, 為每位學員在 stud.cycu.org 建立帳號.

建立帳號指令檔案

自 w4 起, 利用一台 Ubuntu 虛擬主機建立各學員帳號, 並且利用雙埠號派送方式 (內部為 9xxxx, 外部為 8xxxx), 讓各學員得以利用 https://stud.cycu.org 符號名稱執行個人倉儲中的動態網頁, 如同 Replit 上的雲端系統, 使用者可以將此動態網站內容與個人 Github 倉儲中的靜態網頁同步.

各學員擁有動態網頁與靜態網頁的目的, 在能透過伺服器上的 Python 程式與靜態網頁上的 Brython 前端程式進行互動, 將之後進行電腦輔助設計與實習過程中的歷程整理在網頁上外, 還能透過 NX2027 NXOpen 與 CoppeliaSim Remote API 程式編寫各種電腦輔助設計延伸程式.

with open("2022_fall_ubuntu_account_pass.txt") as f:
    data = f.readlines()
# newusers format:  
# pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
# uid starts from 1002
uid_starts = 1001
users = ""
send = ""

for i in data:
    #stud_num \t account \t password \n
    stud = i.split("\t")
    stud_num = stud[0]
    account = stud[1]
    password = stud[2].rstrip()
    uid_starts += 1
    uid = str(uid_starts)
    gid = uid
    gecos = account
    home_dir = "/home/" + account
    shell = "/bin/bash"
    #print(stud_num, account, password)
    users += account + ":" + password + ":" + uid + ":" + gid + ":" + gecos + ":" + home_dir + ":" + shell + "\n"
    send += stud_num + ":" + account + ":" + password + "\n"

with open("users.txt", "w", encoding="utf-8", newline='\n') as f:
        f.write(users)

with open("send.txt", "w", encoding="utf-8", newline='\n') as f:
        f.write(send)

帳號派送

從 @nfu 電子郵箱中可以收到各學員在 stud.cycu.org 伺服器中的登入帳號與密碼. 在 Windows cmd 命令提示字元視窗中, 可以利用:

ssh 帳號@stud.cycu.org 登入伺服器.

進入後, 必須先設定 git 指令的代理主機:

git config --global http.proxy "http://p42.cycu.org:3128"

完成後, 就可以利用 git clone --recurse-submodules https://github.com/mdecad2022/site-Github_帳號.git 取下倉儲內容.

以 cd site-Github_帳號, 可以進入倉儲根目錄, 然後設法利用 vi 建立 server.py 或者在 Windows 環境建立後, 以 sftp 送至倉儲根目錄.

server.py 的內容如下:

from waitress import serve
from cmsimde import flaskapp
# 9xxxx is for localhost internal connect port
# 8xxxx is for Stunnel accept port
serve(flaskapp.app, listen='127.0.0.1:您所分配的_127.0.0.1_埠號', threads=4)

然後在倉儲根目錄, 執行 python3 server.py, 就可以在 https://stud.cycu.org:您所分配的_stud.cycu.org_埠號 擷取到倉儲的動態網站, 以 config 修改管理者密碼後, 即可對此動態網站進行改版, 改版後轉靜態網站資料後, 就可以在 Ubuntu 上先利用 Token 將倉儲改版資料以 acp script 傳至 Github:

source acp "提交字串" for linux and Max

#! /bin/bash
# bash script for Linux and Mac
# chmod u+x acp
# source acp "commit message"
git add .
git commit -m "$1"
git push

cms for linux and Mac

#! /bin/bash
# for Linux and Mac
# chmod u+x cms
# source cms
python3 cmsimde/wsgi.py

利用 chmod u+x acp 讓 acp 可以執行. 之後要執行 acp: source acp "提交字串"

Ubuntu SSH

以 ssh-keygen 建立 private and public keys, 存放於 .ssh 目錄下, 以 sftp 取下 id_rsa.pub 放入 Github 後, 就可以利用 SSH 對 Github 倉儲改版.

.ssh/config 設定 Proxy:

設定之前管理者必須先安裝 ncat: sudo apt install ncat

Host 等同為 Putty SSH 設定中的 sesstion 名稱.

Host github.com
User git
Hostname github.com
ProxyCommand /usr/bin/ncat --proxy p42.cycu.org:3128 --proxy-type http %h %p

若採用上述設定, 則以 scrum-1 github 帳號用戶為例, 使用 SSH 協定 git clone 個人位於 mdecad2022 帳號下的 site-scrum-1 倉儲指令為: git clone --recurse-submodules git@github.com:mdecp2022/site-scrum-1.git, 若將 .ssh/config 檔案, 且 git clone 後倉儲中的 .git/config url 為: git@github.com:mdecp2022/site-scrum-1.git

若 .ssh/config 中的 Host 設為 scrum1, 則 git clone 的指令將成為: git clone --recurse-submodules git@scrum1:mdecp2022/site-scrum-1.git, 而 git clone 後倉儲中的 .git/config url 為: git@scrum1:mdecp2022/site-scrum-1.git

參考: 1. Ubuntu ssh 2. ssh proxy

埠號分配

stud.cycu.org 伺服器中, 已經按照 port table 對每位學員所能使用的 127.0.0.1 與 stud.cycu.org 埠號進行分配.

stunnel 服務重新啟動: sudo /etc/init.d/stunnel4 restart

以系統服務設定 stunnel4:

sudo systemctl enable stunnel4.service

cp2022 w4 教學影片

cadlab 網路設定, 取下個人倉儲, 計算機程式學習順序 (for @nfu users only)

在 Replit 執行動態網頁, 並與 Github 倉儲內容同步 (for @nfu users only)

網路設定與可攜程式系統 (for @nfu users only)

利用 diagrams.net 繪製流程圖, 說明可攜系統批次檔案內容 (for @nfu users only)

Github token, SSH 與 Brython 抽點程式說明 (for @nfu users only)

cp2022 w5 教學影片

利用 random 模組編寫亂數密碼產生程式教學影片 (for @nfu users only)

如何在 Windows 以 Putty 利用 SSH 協定對 Github 倉儲改版提交推送 (for @nfu users only)

如何利用 cms 執行動態網站, 改版後以 acp 將靜態網頁推向 Github Pages (for @nfu users only)

如何設定 SSH 與 https 協定, 對個人倉儲改版 (for @nfu users only)

cad2022 w4 教學影片

下載可攜系統, 建立 exam.cycu.org 考試帳號 (for @nfu users only)

Replit 執行動態網站, 如何與 Github 倉儲同步 (for @nfu users only)

近端可攜環境準備 (for @nfu users only)

cmsimde 改版, Replit 套用新倉儲版本 (for @nfu users only)

cad2022 w5 教學影片

如何在 stud.cycu.org Ubuntu 伺服器上執行動態網站, 如何將改版的靜態網頁推向 Github Pages (for @nfu users only)