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)