Contents of "Free 主機維護參考手冊"
此文記錄 free.twaren.net 上之相關軟、硬體配置,其中包含:
用來作為日後系統維護時之參考
10G Switch list
使用網段為 192.168.108.X,既有設備列表:
- 192.168.108.61, libre vm server, Thomas/2U/
- 192.168.108.241 free3-dell-idrac
網路環境
- IP : 211.73.64.9
- DN :
- (TWAREN domain) free.twaren.net
- (NCHC domain) : free2(free, openoffice, opensource,drbl 尚未轉移名稱).nchc.org.tw
- 開放服務 :
磁碟硬體配置
- Local drive
- /dev/cciss/c0d0 : 160.0 G : 160G x2 :RAID 1
- /dev/cciss/c0d1 : 4000.6 G : 1T x6 : RAID 5 + 1 for hot Spare
- SAN storage
- /dev/sda : 5997.9 GB : HBA WWN: 0x2000001b32908073 How to
- 切單一分割區,--> /mnt/SAN-STORAGE
目錄結構說明
主要針對在進行此主機維護時,會用到的路徑與設計說明。基於使用與管理設定方便,我將系統因為提
供服務所會用到的目錄,依被使用屬性分類放置於 /home 下(多數使用 symbolic link),
以下就 /home 下相關目錄(個人的家目錄不列入說明)做說明:
/home/aptadm
|
作為主機 mirror 其他儲存庫實際執行帳號(aptadm) 之家目錄
- ./bat mirror 所使用之 script, 可查詢 crontab -l
- ./log mirror 時的 log files 存放位置
|
/home/cvsroot
|
為主機 cvs 服務存藏庫位置
|
/home/ftproot
|
UID:ftp 的家目錄, 作為 pubilc ftp access (Anonymous) 時的 fake user
- Index 內容為 soft link 至 /home/mirror/*
|
/home/mirror
|
為鏡射資料的邏輯位置,主要用來給 web, ftp, mirror source 的統一路徑
- Index 內容為 soft link 至 /mnt/RAID1/mirrror/{dists,packages}/* 與 /mnt/SAN-STORAGE/mirrror/{dists,packages}/*
- symbolic link 至 /mnt/SAN-STORAGE/mirror, 如:
dists type:
debian -> /mnt/SAN-STORAGE/mirror/dists/debian
linuxmint -> /mnt/RAID1/mirror/dists/linuxmint
...
package typs:
drbl-core -> /mnt/SAN-STORAGE/mirror/packages/drbl-core
syslinux -> /mnt/SAN-STORAGE/mirror/packages/syslinux
....
之後,要用到這些資料,路徑統一用 /home/mirror/[dists or package name] 即可,如:
1. miroor script :
Ex: /home/aptadm/bat/mirror-debian
line 25: TO="/home/mirror/debian"
Ex: /home/aptadm/bat/mirror-syslinux
line4 : local_mirror_dir="/home/mirror/syslinux/"
2. Mirror service via http :
/home/webroot/free.nchc.org.tw/debian -> /home/mirror/debian
/home/webroot/free.nchc.org.tw/syslinux -> /home/mirror/syslinux
3. Mirror service via ftp :
/home/ftproot/debian -> /home/mirror/debian
/home/ftproot/syslinux -> /home/mirror/syslinux
|
/home/svnroot
|
svn 專案存藏庫位置
- 受 svn 管理之專案根目錄為 /home/svnroot/repository
- 因需提供經由 web dav 方式進行版本管理,所以 repository 下 owner 必須為 www-data
- svn 相關設定參考 SVN 設定
- 透過 svn 進行網頁維護請參考 由 svn 進行網頁維護
- symbolic link 至 /mnt/RAID1/svnroot
|
/home/tracroot
|
trac 專案存藏庫位置
|
/home/webadm
|
- 為 webadm 此系統帳號之家目錄,主要提供成員透過 svn 進行維護計劃網頁使用
- ./bat 用來放置維護主機網頁所需之 script
- 以 webadm 身分透過 svn 進行網頁維護請參考 透過 svn 進行網頁維護
|
/home/web.arch
|
|
/home/webroot
|
- Apache2 上對應各 virtual host 的根目錄
- 若要在同一 host 下提供多個網頁,則以目錄方式,在目錄中放置對應到 /home/web.arch 下實體目錄的 soft link, ex:
$ ls -l /home/webroot/free2.nchc.org.tw/
總計 4
lrwxrwxrwx 1 ceasar ceasar 31 2010-01-26 15:41 drbl -> /home/mirror/packages/drbl-core
lrwxrwxrwx 1 root root 31 2010-01-26 14:44 drbl-core -> /home/mirror/packages/drbl-core
lrwxrwxrwx 1 ceasar ceasar 34 2010-01-26 14:42 drbl-winroll.web.en -> /home/web.arch/drbl-winroll.web.en
lrwxrwxrwx 1 ceasar ceasar 26 2010-01-26 14:52 ezgo -> /home/mirror/packages/ezgo
-rw-r--r-- 1 ceasar ceasar 338 2010-01-26 14:50 index.html
lrwxrwxrwx 1 ceasar ceasar 28 2010-01-26 14:40 pmwiki -> /home/web.arch/pmwiki-2.2.10
lrwxrwxrwx 1 ceasar ceasar 28 2010-01-26 14:40 vm-image.arch -> /home/web.arch/vm-image.arch
- 若是指向單一網頁目錄,則以 symbolic link 至 /home/web.arch 下的實體目錄, ex;
e$ ls -l /home/webroot/drbl.nchc.org.tw
lrwxrwxrwx 1 root root 29 2010-01-28 10:39 /home/webroot/drbl.nchc.org.tw -> /home/web.arch/drbl.web.zh_TW
|
其他重要目錄
/mnt/RAID1/Backup.arch
|
主機定時備份資料存放路徑,擬採 aptadm account 進行備份,將備份系統重要設定檔,如: svn , apache, trac, mirror script,... 等其他無交附 svn 管理之資料
- ./utility.shell 為主機會到到相關的 shell scritp, ex: mirror scripts, svn/trac dump script, DB(MySQL) dump scripts
- ./raw-dump dump 資料實際存放位置
- ./svn-project_name.x.dump : svn 專案 dump, 由 /home/aptadm/bat/svn-backup 維護
- ./trac-project_name.x.dump : trac 專案 dump, 由 /home/aptadm/bat/trac-backup 維護
|
服務設定
SVN 使用
列出目前 svn 上所管理的列表與說明
SVN 同步
- svn 同步主機(svn slave)為 (ip: 140.110.27.54)主機上進行,由 svnadm 執行,script:/home/svnroot/bat/syncsvn, 詳細資料如下 :
$ sudo su - svnadm -c "crontab -l"
# m h dom mon dow command
# sync svn
0 * * * * /home/svnroot/bat/syncsvn
svn co http://140.110.27.54/svn/web.arch/drbl.web.zh_TW
svn co http://140.110.27.54/svn/drbl-winroll/trunk/ drbl-winroll
- 如何在 slave 上新增一個自動接受 rsync 的 svn (已 demo 為例)
- 準備 project 的 svn 目錄
sudo mkdir /home/svnroot/repository/demo
sudo svnadmin create /home/svnroot/repository/demo
sudo chown -R svnadm.www-data /home/svnroot/repository/demo;
sudo find /home/svnroot/repository/ -type d -exec chmod 2775 {} \;
sudo find /home/svnroot/repository/ -type f -exec chmod 664 {} \;
- 加入 "pre-revprop-change" , "start-commit" 到各 svn project hooh 中。此舉主要是避免此 slave 接受從其他來源的 commit
sudo cp /home/svnroot/hook.shell/{pre-revprop-change,start-commit} \
/home/svnroot/repository/demo/hooks
- pre-revprop-change 只允許 svnadmin 帳號變專案資訊
- start-commit 只允許 svnadmin 帳號進行 commit
- 要被同步的 project 進行初始化
svnsync init --sync-username 'svn admin account' file:///home/svnroot/repository/demo \
--source-username 'reader account' --source-password 'passord?' http://source.host/svn/demo/
- 之後要與 master 同步使用
svnsync sync --sync-username 'svn admin account' file:///home/svnroot/repository/demo \
--source-username 'reader account' --source-password 'passord?'
維護手冊
如何以 svn 進行網頁維護
- 以維護 drbl 中文網頁為例:
- 找台主機先把 drbl.web.zh_TW 透過 https checkout, 由於網頁內容可能有安全疑慮,所以需帳號密碼認証
svn co https://free.twaren.net/svn/web.arch/drbl.web.zh_TW/
或直接在 free 上的 /home/web.arch/drbl.web.zh_TW/ 以 webadm 身分修改
- 確認修改無誤後 commit ($ svn ci) 回去
- 登入 free 主機, 切換成 webadm 身分
$ sudo su - webadm
- 切換到 drbl.web.zh_TW 網頁實際儲藏庫下($ cd /home/web.arch/drbl.web.zh_TW)
- 做 svn update 動作即可(不需要重新 co or export)
$ svn update
- 當初在為避免安全問題,所以使用 local repository check out 方式
- 可參考 新增一個以 svn 管理的網頁專案
新增一個以 svn 管理的網頁專案
- 以新增 drbl-winroll 中文網頁為例
- 先將完成的專案網頁 import 進 svn, 需帳號密碼並建議以 https 連線
svn import drbl-winroll.web.zh_TW https://free.twaren.net/svn/web.arch/drbl-winroll.web.zh_TW/ \
-m "Import drbl-winroll zh_TW web pages"
- 登入到 server 上,並切換至 webadm 身分, 並切換至 /home/web.arch 目錄
$ sudo su - webadm; cd /home/web.arch
- 為避免安全問題,所以使用 local repository check out 方式建立
$ svn co file:///home/svnroot/repository/web.arch/drbl-winroll.web.zh_TW
備援主機建置SOP
說明建置此備援主機 (free2.nchc.org.tw)之流程:
sudo addgroup --gid 1005 git
sudo addgroup --gid 6666 mirror_adm
sudo adduser --system --home /home/aptadm --shell /bin/bash --uid 6666 --gid 6666 --disabled-password aptadm
sudo adduser --system --home /home/webroot --shell /bin/false --uid 6667 --gid 65534 --disabled-password webadm
sudo adduser --system --home /home/svnroot --shell /bin/false --uid 6668 --gid 65534 --disabled-password svnadm
sudo adduser --system --home /home/gitpool --shell /bin/false --uid 1005 --gid 1005 --disabled-password git
sudo adduser --system --home /home/ftproot --shell /bin/false --uid 110 --gid 65534 --disabled-password --disabled-login ftp
# 同步 /home/aptadm 資料
sudo rsync -avP --delete --exclude=".lftp/*" free:/home/aptadm/ /home/aptadm/
# 同步 Backup.arch, gitpool, svnroot, web.arch 資料
sudo rsync -avP --delete --exclude="mirror/*" --exclude="ftproot/*" --exclude="webroot/*" \
free:/mnt/RAID1/ //mnt/sdb1/
# 同步 packages 資料
sudo rsync -avP --delete-before free:/mnt/SAN-STORAGE/mirror/packages/ /mnt/sdb1/mirror/packages/
# 同步 dists part-1 : skip fedora
sudo rsync -avP --delete-before \
--exclude="centos/*" --exclude="debian-cd/*" --exclude="gentoo/*" \
--exclude="mandriva/*" --exclude="ubuntu-dvd/*" --exclude="scientific/*" \
--exclude="fedora/*" \
root@free:/mnt/SAN-STORAGE/mirror/dists/ /mnt/sdc1/mirror/dists/
# 同步 dists Prat-2 : skip manjaro
sudo rsync -avP --delete-before \
--exclude="manjaro/*" \
free:/mnt/RAID1/mirror/dists/ /mnt/sdb1/mirror/dists/
# pure-ftpd Passive mode 設定
sudo vi /etc/pure-ftpd/conf/PassivePortRange
0000 50128
附錄
- How to get HBA WWN code in Linux
$ cat /sys/class/scsi_host/*/device/fc_host:*/node_name
0x2000001b12345678
- Import zh_TW version of drbl-winroll web page
svn import drbl-winroll.web.zh_TW https://free.twaren.net/svn/web.arch/drbl-winroll.web.zh_TW/ \
-m "Import drbl-winroll zh_TW web pages"
- Import FS lab pmwiki web page as a branch for demo project
svn import /path-to-pmwiwki/pmwiki/ https://server.url/svn/demo/pmwiki -m "Import FS lab pmwiki web pages"
- Export zh_TW version of drbl-winroll web page
svn co https://free.twaren.net/svn/web.arch/drbl-winroll.web.zh_TW/
- Export zh_TW version of drbl web page
svn co https://free.twaren.net/svn/web.arch/drbl.web.zh_TW/
- Apache2 中所使用的 RewriteEngine 模組
# Add by Ceasar
RewriteEngine On
# Avoid to access ".svn", "CVS" information via web
RewriteCond %{REQUEST_URI} /\.svn.*$
RewriteRule ^(.*)(\.svn.*)$ /$1 [R]
RewriteCond %{REQUEST_URI} /CVS.*$
RewriteRule ^(.*)(CVS.*)$ /$1 [R]
# redirect http to https
#RewriteCond %{HTTPS} off
#RewriteRule !\..*$ https://%{HTTP_HOST}%{REQUEST_URI}
#RewriteRule (/.*) https://%{HTTP_HOST}%{REQUEST_URI}