群組最近更新列表 - 搜尋:

自由軟體實驗室

Projects

FS-Lab

edit SideBar

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
  • 開放服務 :
ServicePackage nameDetail
sshopenssh-server 
webapache2http :80 , https :443
svnsubversion, libapache2-svnhttp://free.twaren.net/svn/project-name
ftppure-ftpdport: 21

磁碟硬體配置

  • Local drive
    • /dev/cciss/c0d0 : 160.0 G : 160G x2 :RAID 1
      • 給 swap, /, home 使用

  • /dev/cciss/c0d1 : 4000.6 G : 1T x6 : RAID 5 + 1 for hot Spare
    • 切單一分割區,--> /mnt/RAID1

  • 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 專案存藏庫位置

  • 受 trac 管理之專案根目錄為 /home/tracroot/repository
  • 待安裝,預計有 tux2live,... 等專案
  • trac 相關設定參考 TRAC 設定
  • symbolic link 至 /mnt/RAID1/tracroot

/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 上所管理的列表與說明

https://free.twaren.net/svn/web.arch/

管理目前維護之網頁資料,有

需帳號、密碼存取

存取: 以 checkout drbl 中文網頁為例

   svn co  https://free.twaren.net/svn/web.arch/drbl.web.zh_TW drblweb

 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 為例)
    1. 準備 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 {} \;
  1. 加入 "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
  1. 要被同步的 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/
  1. 之後要與 master 同步使用
  svnsync sync --sync-username 'svn admin account' file:///home/svnroot/repository/demo \
  --source-username 'reader account' --source-password 'passord?' 

維護手冊

 如何以 svn 進行網頁維護
  • 以維護 drbl 中文網頁為例:
    1. 找台主機先把 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 身分修改

  1. 確認修改無誤後 commit ($ svn ci) 回去
  2. 登入 free 主機, 切換成 webadm 身分
$ sudo su - webadm
  1. 切換到 drbl.web.zh_TW 網頁實際儲藏庫下($ cd /home/web.arch/drbl.web.zh_TW)
  2. 做 svn update 動作即可(不需要重新 co or export)
$ svn update
  1. 當初在為避免安全問題,所以使用 local repository check out 方式
  2. 可參考 新增一個以 svn 管理的網頁專案

 新增一個以 svn 管理的網頁專案
  • 以新增 drbl-winroll 中文網頁為例
    1. 先將完成的專案網頁 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"
  1. 登入到 server 上,並切換至 webadm 身分, 並切換至 /home/web.arch 目錄
    $ sudo su - webadm; cd /home/web.arch
  1. 為避免安全問題,所以使用 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}

編輯 - 版本 - 列印 - 群組最近更新列表 - 搜尋
頁面最後更新於 2020/12/04, 10:44