最近需要用到 bugzilla, 手動架都失敗, 於是找到幾個偷懶的方法...
一、 Docker
第一個方法是: Setting up Bugzilla using docker image on localhost, 不過需要小改一些地方。
docker pull bugzilla/bugzilla-dev docker run -d --name bugz -p 8124:80 bugzilla/bugzilla-dev:latest docker exec -it bugz su -- bugzilla
抓回官方製作的 docker。 啟動時設為 daemon 模式, 命名為 bugz, 並且把 bugz 的 80 port 映射到 host 的 8124 port (任選數字)。 然後進入 bugz、 以 bugzilla 的身份打開命令列。 (關於 docker 基本觀念, 請見 volume/port/link 及 狀態轉換 兩篇。)
在 bugz 的命令列上啟動 mysql:
mysql -h localhost -u root
, 在 mysql 裡面:
CREATE USER 'bugs'@'localhost' IDENTIFIED BY 'bugs'; SELECT User FROM mysql.user; CREATE DATABASE bugs; GRANT ALL PRIVILEGES ON bugs.* TO 'bugs'@'localhost' WITH GRANT OPTION;
帳號密碼先用預設的 "bugs" 及 "bugs" 不要改,
因為後面的 perl 程式會採用這兩個預設值。
手動建立名為 bugs 的資料庫 (Setting 文裡漏了這一步),
並且讓 bugs 使用者擁有 bugs 資料庫的所有權限。
按 ^d 離開後, 再用 mysql -h localhost -u bugs -D bugs -p
重新登入一次, 確認帳號、密碼、資料庫名稱都正確並能登入,隨即離開 mysql --
想必這些是程式碼連線時的預設值。
find / -iname 'checksetup.pl' > ~/where.txt cat ~/where.txt cd /var/www/html/bugzilla/ perl checksetup.pl lynx http://localhost/bugzilla/
翻遍 bugz 這個 docker , 找到 checksetup.pl 這支程式, 進到它所在的目錄, 並且用 perl 執行它, 初始化資料庫。 回答一堆問題 (請提供有效的 e-mail; 帳號名稱是 bugzilla 登入時希望用的管理員名稱; 密碼至少要有 6 個字元), 之後便可用 lynx 瀏覽器測試, 看到 bugzilla 系統的首頁。 然後就可以離開 bugz 這個 docker。
回到 host, 在瀏覽器裡打入網址: http://localhost:8124/bugzilla/ 就有 bugzilla 可用囉! (port 號碼請見當初 docker run 的設定。) 其他的, 就以後有需要時再來研究 官網的 Dockerfile 吧。
二、 Proxmox 裡的現成的 lxc container
如果你已架好一部 proxmox 伺服器, 就可以用採用這一節的方案。
pveam available | grep bugz pveam download local debian-9-turnkey-bugzilla_版本.tar.gz
然後透過 (pveproxy 服務的) :8006 的網頁介面建立一部
turnkey 版 bugzilla 的 lxc container。
再用 pct enter CT代號
進入這個 container, 編輯 /etc/network/interfaces 、
用 systemctl 重啟網路服務。
我的做法是當初用網頁介面建立 container 時, 即指定 把 ssh 公鑰放在 ~/.ssh/authorized_keys 裡面, 並且這個 container 的 IP 是 192.168.xx.yy 之類的, 用 fwmp 設定 port forwarding 透過 proxmox host 轉發它的 ssh 服務。
不論你如何配置你的網路設定,
總之 ssh 服務設定好之後, ssh -p 埠號 root@主機IP
第一次以 ssh 登入後就會直接被帶到設定程式,包含:
- MySQL 'adminer' 的密碼
- Bugzilla 'admin' 的 e-mail 及密碼
- Bugzilla 寄件人的 e-mail
- turnkey 服務的帳號
- 重大安全通知的 e-mail
- 是否要立刻更新安全相關套件
完成後就會自動啟用以下服務:
未加密 bugzilla | http://192.168.xx.yy |
---|---|
加密 bugzilla | https://192.168.xx.yy |
Web shell | https://192.168.xx.yy:12320 |
Webmin | https://192.168.xx.yy:12321 |
SSH/SFTP | root@192.168.xx.yy (port 22) |
可是我有 ssh 就夠了, 並不需 web shell 跟 webmin,
所以趕快把它們刪掉: apt remove webmin shellinabox
再把 80 或 443 用 port forwarding 轉出來,
就可以使用囉。 若要研究資料庫, 可以在命令列上:
mysql -u adminer -p
並用剛剛設定的密碼登入即可。
以下補充 [幾乎沒人有用得到的] 冷知識:
- Turnkey linux 首次登入執行的程式放在哪裡? 在 /usr/lib/inithooks/firstboot.d/ 。
- 分別查看 /usr/lib/inithooks/bin/bugzilla.py 跟 /var/www/bugzilla/checksetup.pl 發現 Turnkey linux 的 bugzilla.py 並沒有去呼叫 "原廠" 的 checksetup.pl 。 它們各自都會設定資料庫並根據使用者的輸入去更動 /var/www/bugzilla/data/params.json 。
三、 拿人家現成的來用
這一招最偷懶了: 網路上已有善心人士架好 bugzilla 讓大家練習使用。
如果想要用 allizom 的 bugzilla 測試站, 需要先有一個 github 的帳號。 不要點 「NewAccount」! 要點 「login」 再點最左邊的 github 圖示 「Signin」, 然後就可以開始玩。
另一個是 OpenDemo 的 bugzilla 測試站。 在這裡用 e-mail 即可註冊。 但可能要等幾小時才會收到確認信, 而且可能會落在垃圾信箱裡。 點下確認連結後就可以用。
有了 bugzilla 網站可用之後, 再來就是閱讀教學文了: Bugzilla Tutorial for Beginners: Defect Tracking Tool
沒有留言:
張貼留言
因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。