桌面工作平台與伺服器的思考
自從 Steve Job 在蘋果開發者大會上一番引人遐思的言論之後,我對於桌面平台以及伺服器的思考,也走入一種遐想的境地。
還是從 CentOS 談起;其實之前也有一段時間是以 Windows 2000 與後續的 2003 伺服器架設主機,當然都是用測試版的軟體,雖然這些主機的操作介面都與 Windows 環境一模一樣,的確入手蠻容易的,後來放棄的原因有:
1. 總不能老是用測試版(或是盜版)軟體吧?正式版又貴得嚇人,投資不下去。
2. 對硬體的要求太高,一些老主機跑起來很慢,吃系統資源實在驚人,也不想老是換新硬體(也沒錢換)。
3. 許多開放原始碼的套件,其實都主力支援 AMP,在 Windows 系統上反而顯得慢。
4. Windows Server 的遠端連線管理,其實很耗資源,畢竟要顯示出所有的圖型介面,沒必要。
於是改用 Linux 系統後,主機架完就真正可以拔除多餘的周邊,只留下網路與電源線,其他操作都在一般平台登入來做即可(我沒有使用 XWindows,都是文字介面),舊主機也跑得嚇嚇叫。
而當 Steve Job 讓人感覺 Apple 即將進入真正的桌面系統戰爭之後(其實並不確定,但我希望),讓人又重新思考起這個基本的問題:真正好的桌面作業系統是什麼?伺服器又需要什麼樣的操作介面呢?
Windows Server 其實是從一般人使用的桌面環境複製來的操作介面,老實說真沒必要,誰會到一台台伺服器面前操作呢?過多的介面資源耗用,就代表給伺服器運作的資源變少了,更是一種浪費;但是像 Linux 般的純文字介面,過多的指令與大量的文字設定檔的編輯,又實在是太難了點。
其實 Webmin 這個介面是很不錯的,像之前 Cobalt 替 Qube 開發的伺服器管理介面也是接近的邏輯,老實說,目前並沒有好的伺服器操作介面,也就是符合能遠端進入,又是專為伺服器核心打造的介面。
目前最好的桌面操作系統,我相信是 Apple 的 Mac OSX,Windows 還有好一段路呢,我非常期待 Apple 真的開始讓 OSX 成為跨平台的作業系統,足以與 Windows 平分秋色的系統(我不是說功能,而是市場)。
然後,就是以 Linux 為核心,但是搭載了伺服器專屬的操作介面,既不是純文字,也不是把桌面系統移植過去,當然恐怕就不是什麼 XWindows 之類的,這是我的期望。
關於 CentOS 的近況
之前就說過,Linux 的大問題就是不容易學,因為太穩定了,每當經過一段安裝期,各項主要的伺服器服務都已經正常運作之後,往往就停滯下來,因為使用 Linux 不是目的,架設所需要的伺服器才是目標,所以我的 Linux 程度總是停留在一個
極淺的程度。
更何況,實際上 CentOS 是 Redhat Enterprise Linux 的複製版,以安全、穩定著稱,如果不是碰上什麼大問題,當系統安裝完之後,接下來的工作其實是各種伺服器的安裝與設定,已經與 CentOS 關係不那麼直接;而當主要的服務都設定好,也都正常運作的時候,焦點也就開始移轉到這些伺服器後續的應用上,感覺就離 CentOS 愈來愈遠了;當然,其實這都是好事,代表 CentOS 系統穩定,代表沒有錯誤的將力量與時間擺在 Linux 的進階系統上(畢竟我不是什麼 Linux 專家啦)。
LAMP 的平台(Linux + Apache + MySQL + PHP,我還加上了 ColdFusion MX),已經是一個幾乎無所不能的伺服器環境了,剩下來的是架站者的其他技術與運用的意念,於是乎,很有可能,得重新思考 CentOS 這個 Blog Site 的意義與走向。
Yum 預設設定檔的一個小錯誤
這是國外網站上的資訊:(大意是說,預設的 CentOS-Base.repo 之中有一個地方的資訊拼錯了,大家要記得手動去修改一下)
CentOS Errata and BugFix Advisory CEBA-2005:0506-01 for centos-yumconf
centos-yumconf contains the base configuration for yum in CentOS-4 (in the file /etc/yum.repos.d/CentOS-Base.repo) There was a misspelling in the normally disabled “contrib” repository (it was misspelled as contribs). This prevented being able to enable the contrib directory via the command-line and is corrected with this update.
The following updated files have been uploaded and are currently syncing to the mirrors:
i386 and x86_64:
centos-yumconf-4-4.2.noarch.rpm
src:
centos-yumconf-4-4.2.src.rpm
You can get this update with the command:
yum update centos-yumconf
(If you have modified the file /etc/yum.repos.d/CentOS-Base.repo, a new file named CentOS-Base.repo.rpmnew will be created in /etc/yum.repos.d, and you will have to modify your CentOS-Base.repo to contain the new contrib information)
CentOS4的安裝程序Step1
由於拿到了新的主機板和記憶體,又重新安裝了一次 CentOS 4,所以重新整理一次:
《CentOS 4 基礎安裝第一步》
目標:安裝好基礎的 CentOS 4,並且能夠拔除不必要的設備(僅留下電源與網路線),讓接下來的後續程序都能夠在其他的工作站上遠端執行。
(1)已下載好 CentOS 4 的CD-ROM,只需要前三片。
(2)調整好硬體,設定為光碟開機。
(3)用第一片開機安裝,基礎的硬碟分割或是網路設定就不多說了,選擇套件時選擇最下方的”最小化安裝”,安裝完後重新開機。
(4) 雖然在光碟安裝過程中,都已經設定好網路,但像我安裝的兩台主機,分別有兩張與三張網路卡,設定過程中只知道 eth0, eth1, eth2 分別設定好了,其實還是要實際插插看,並使用 ping 指令去測試,看哪一條線路是對的(使用 ifconfig 可以看到三張網路卡的設定資訊,但是並未顯示出網路卡的廠牌,只有 Mac Address,如果平時有將手邊的網路卡記錄下來,或許可以清楚分辨,否則,就像我一樣,接線測試看看);經過此一步驟,各張網卡各自網域內的連線就已 經測通完成。
(5)檢查一下網路的幾個相關設定檔:
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0, ifcfg-eth1, ifcfg-eth2
/etc/resolv.conf
/etc/hosts
前三個設定其實在光碟安裝過程都已設定,除非有誤,否則不需要更改。
hosts 則將區域網路中的 IP 與主機名稱手動輸入。
(6)設定 Yum 網路更新:
‧cd /etc/yum.repos.d
‧cp CentOS-Base.repo tnc-mirror.repo
‧mv CentOS-Base.repo CentOS-Base.default
‧vi tnc-mirror.repo (修改成 ftp://ftp2.tnc.edu.tw/pub1/centos…)
‧rpm –import ftp://ftp2.tnc.edu.tw/pub1/centos/RPM-GPG-KEY-CentOS-4
‧yum -y update
如果線路無誤,就會開始線上更新了。
(7)
由於我的網路架構有些不同,基礎如下:
Host E:eth0=220.x.x.1, 聯外固定 IP;eth1=192.168.0.1, DMZ 主機區網。
Host B:eth2=220.x.x.2, 聯外固定 IP;eth0=192.168.0.2, DMZ 主機區網;eth1=192.168.1.2, 工作站區網。
其實就是將 Host B 作為常見的三卡主機,是連通主機群與工作站群之間的防火牆,所以要啟動 Router 的設定;而 Host E 也要做相對應的設定。
<Host E>
cd /etc/sysconfig/network-scripts
vi route-eth1
寫入下列三行:
「ADDRESS0=192.168.1.0
GATEWAY0=192.168.0.2
NETMASK0=255.255.255.0」
<Host B>
原則上就是要啟動兩個區網之間的溝通
echo 1 > /proc/sys/net/ipv4/ip_forward
分別在兩台主機上用 route -n 看看路由對不對,同時 Ping 看看各自區網裡的電腦。
注意!此時是在測試安裝區網,所以我習慣先將防火牆關掉:
service iptables stop (分別關掉兩台電腦的防火牆)
ifdown ethx (分別關掉兩台主機上的對外連線,這樣不會有干擾,也較安全)
理論上這樣應該所有電腦、工作站之間都應該連通無誤才對。
(8) 設定防火牆
這部份就不多說了,我都是使用鳥哥所寫的那三個檔:iptables.rule, iptables.deny, iptables.allow;但是使用多時,裡面也已經改了不少,不過都是依照我的狀況而修正,這三個檔案實在好用,就是視不同狀況去註銷或加入些文字。
啟動防火牆後,再次在區網內電腦交叉測通看看。
測試沒問題後,在 /etc/rc.d/rc.local 裡加入 iptables.rule 啟動的一行文字。
(9) 設定 i18n
經過上列程序,我的第一步目標已大致完成,也就是幾乎可以拔掉所有設備連線,例如光碟機、鍵盤等,因為已經可以透過網路,在工作站上使用 cpputty 來處裡一切;
唯一的小問題是,顯示中文;雖然網路上有許多方式教導如何在文字模式(終端機)上顯示中文,但是設定大多麻煩,最重要的是,我並不會真正到終端操作,99% 是透過 cpputty 去操作,所以只需要這樣設定:
vi /etc/sysconfig/i18n
我的原始內容是→
「LANG=”zh_TW.UTF-8″
SUPPORTED=”zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en”
SYSFONT=”latarcyrheb-sun16″」
改成這樣:
「LANG=”zh_TW.Big5″
SUPPORTED=”zh_TW.Big5:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en”
SYSFONT=”latarcyrheb-sun16″」
再去工作站的 cpputty 連線看看,就可以看到中文了,這樣對我就夠了。
(10) 因為習慣用 free 和 sar 這兩個指令去看記憶體和 CPU 的使用狀況,同時也為了未來能讓 MRTG 獲得系統資訊,所以得先安裝一個套件(free 指令是預設安裝就有的,sar 則是要安裝 sysstat 才會有)
yum -y install sysstat
OK,至此,第一階段完成。
設定 Yum 更新機制(Centos4)
首先必須遠端安裝 KEY:
rpm –import http://ftp2.tnc.edu.tw/pub1/centos/RPM-GPG-KEY-CentOS-4
不會出現什麼訊息,就是安裝好了。
台灣 TNC 的 Mirror 當然是最快的,路徑已經修正,就是上面的這個。
之 前的方式是去修正 /etc/yum.conf,但是在 CentOS 4 裡的 yum.conf ,其實已經不含實際路徑了,而是去讀取 /etc/yum.repos.d 這個目錄下副檔名為 .repo 的檔案;進入該目錄後會發現一個名為 CentOS-Base.repo 的設定檔,裡面的內容就是傳統上的實際路徑;並不清楚這個新機制有什麼特殊之處,我先拷貝一份,更名為 tnc-mirror.repo ,將路徑修改成為 TNC 的鏡像,並將原來的預設檔改名為 CentOS-Base.default,就可以開始更新了。
如果存在多個 .repo 檔,好像也並沒有自己去選擇最近、最快速的,不了解這樣的變動是不是具有特殊意義(或許是為了 SELinux);另外,其實直接將路徑寫在 yum.conf 中也是可以的。
OK,線上使用tnc 鏡像更新完全沒有問題。
開始安裝Centos4
再一連串解決硬體(記憶體)的問題之後,終於開始要安裝新的 Centos 4 了。
首先,置入光碟→開機→進入安裝畫面,基本上都與舊版相同;依舊要嘮叨一下的還是那個多片安裝的問題,我一貫安裝的習慣在套件的部份是選擇最小安裝,也就 是後續需要的套件都採用 Yum 線上選擇安裝的方式,也就是說,其實剛安裝完的伺服器都是在最乾淨的狀況之下,以往最小安裝通常需要使用到第一、二片光碟,沒想到 Centos 4 居然需要用到第3片!而其實在讀取的過程就可以發現,第 2、3 片光碟幾乎都是放入讀兩秒就結束了,偏偏 Centos 4 還沒有單片安裝版光碟問世,所以又浪費了時間、頻寬、光碟片為了這4秒,真是不經濟!
廢話結束…
由於 RHEL 4 已經加入了 SELinux 這一個更安全嚴謹的控管機制,但是由於實在沒有研究,暫時就先略過,在安裝過程中要記得勾選 “停用” 這個選項,就是在傳統上預設防火牆的同一安裝頁中。
讀完第三片光碟後,退出→重開機,Centos 4 就安裝好了。
網路確認無誤的話(通常在安裝過程中就都輸入好了,由於我是使用固定 IP 的 ADSL,所以網路線插對網卡,線路就即時暢通了。
接下來的步驟,當然是去設定 Yum 的更新機制….
哈,計畫趕不上變化(Centos+MythTV)
世事多變:)
剛才好不容易規劃好了兩台雙CPU 主機改裝 Centos Server,突然因為找出一張華碩 V7100 TVCard,打算多玩兩天…
因 為一直很想來玩玩 MythTV,之前沒動手的原因是原來的舊準系統都沒有 AGP 插槽,因為用作 Linux Server 之故,也都是用板子上的顯示功能應付而已(我連 XWindows 都沒有裝,純文字介面有啥好計較的?),雖說計畫要添購具備硬體即時解壓縮的電視卡,因為挪不出機器也就暫時擱置,這張 V7100 TVCard 是之前替人修電腦換下的,一直放在抽屜裡沒想起,現在正好來試試。
話說其中一張 P3-800 Dual CPU 的主板有 AGP 4X 插槽,就可以順理成章的加上這張 TVCard 來測試,我知道 P3-800 老實說很不夠力,在這種不具備硬壓晶片的簡易電視卡環境下,視訊解壓縮的處理都得靠 CPU 來運算,不過我的 ThinkPad X23 也是 P3-800 的規格啊,至少看 DivX 影片還 OK,所以就這麼辦吧,不試不知道。
SO, 這台主機中就加上 V7100 吧,拉條 Cable TV 同軸線進來,管它最後用不用得上。
讓 這台舊的 File Server 多一項實驗性的任務:Media Server,反正本來就是檔案伺服,最壞的狀況就是不用它實際觀看,錄下來的電視或 Rip 檔,透過網路傳輸由其他工作站來看,理論上就是讓 P3-800 專門用來編碼壓縮(不知道 Dual CPU 在 Linux+MythTV 的狀況下能否兩顆加成運算?),錄下的檔案解碼觀看時則是由工作站 PC 來運算(換句話說,並不會在這台機器上使用邊錄邊看),這樣應該可以得到比較好的效果吧?
又多了一項研究 MythTV 的任務了,真是有趣極了…
倒是不知道網路上有沒有人曾經在 Centos 4 上用過 MythTV 呢?這種視訊影音的運用,是不是其實用非企業級伺服器來做更好呢?例如 Fedora?等我找出答案吧。
新的進展與規劃(P3-800 Dual 新主機)
使用Centos 架設自己用的 Linux 主機也一段時間了,老實說,真是滿意!穩定、效能高,各項支援都相當不錯,就連我這樣的 Linux 初心者也還算是能夠上手,雖然總覺得對於 Linux 還有太多不了解的地方,架設 Centos Server 卻總替我帶來很大的滿足感…
我目前理想中的數位資訊環境,大概是這樣組成的:
Workstation:Mac G4 or G5(Mac OSX)
Server:Linux(當然首選就是穩定、免費、好用的 Centos)
Mobile:Palm
(目前使用 Tungsten|T,可是由 PalmV→505 直升上來的,下一步該是 Tero650 吧)
老實說,這個 MLP(Mac,Linux,Palm)的組合,還有什麼做不到的呢?
好像離題了…
關於主機與網路的學習,差不多該進入較正式的實作了,所以幾天內會有些變動;
首先,因為淘汰與升級之故,新組了兩台正式的 Linux 主機,當然 OS 就是 Centos 4,兩台主機都是 P3-800 雙CPU + 1GB RAM 的基本組合(都是網拍便宜撿來的二手貨)。
(第一台)
P3-800×2 + 1GB Non-ECC PC-133 RAM,版子屬中階產品,還是舊的 ATA66 規格,所以搭配舊的 HighPoint ATA100 RAID 1 PCI 擴充卡,以前舊機器就是為了這張 RAID 1 卡的驅動程式,一直都還是安裝 Redhat 9;
<待處理事項>
1.要在 Centos 4 的環境下,自己編譯這張卡的驅動程式;這台主機的主要功能一直都是 File Server 與 2nd DNS, Mail 備援,未來也是。
2.這台主機也是房間內不斷電系統的主控台,當市電中斷時,是由它發出訊號給其他主機開始關機,自己則是等候 UPS 低電量時才關機,這個主控程式也要重新安裝在 Centos 4 上。
(第二台)
P3-800×2 + 1GB ECC,REG PC-133 RAM,高階伺服器機板,內建 Promise ATA100 RAID 1;
<待處理事項>
1.同樣要解決 Promise RAID 的驅動。
2. 過去的應用環境是傳統的LAMP(Linux+Apache+MySQL+PHP),這次則要安裝成LAMPC(Linux+Apache+ MySQL+PHP+ColdFusionMX7),這個 ColdFusion MX 7 就是這次的重點了!目前已經看到的問題有兩個:
(1) 據說成功安裝在 RHEL4 上的 ColdFusion MX 7,是取消了 SELinux 的,這必須要嘗試一下,但是如果取消 SELinux 新的安全控管,不就廢了 RHEL4 的全新安全訴求嗎?
(2)下面這兩個 RPMs 似乎必須安裝才能正常使用-
“You can easily make CFMX7 work on RHEL 4 – you just need to have those RPMs installed that I mentioned above. Do you know to check for those? These are the two most important:
xorg-x11-deprecated-libs-devel-6.8.1-23.EL
xorg-x11-libs-6.8.1-23.EL”
總之,這兩天組好機器後,就要開始我玩 Centos 的新里程碑嘍!
Linux Server Backup
因為終於排出時間更新主機,才發現一個老是擱下的工作:讓系統自動備份;
於事先進行第一步驟:確認需要備份的設定檔。
1. 基本設定檔
/etc/sysconfig/network
/etc/resolv.conf
/etc/hosts
/etc/sysconfig/network-scripts/route-eth1
2. DNS 相關設定檔
/etc/named.conf
/var/named/ 所有檔案…
3. Postfix 郵件主機設定檔
/etc/postfix/main.cf
/etc/postfix/aliases
/etc/mail/spamassassin/local.cf
/etc/procmailrc
4. 防火牆設定檔 iptables
/usr/local/virus/iptables/iptables.rule
/usr/local/virus/iptables/iptables.allow
/usr/local/virus/iptables/iptables.deny
5. ClamAV 的設定檔(有計畫改用其他的防毒程式)
/etc/freshclam.conf
/etc/clamav.conf
6. Apache Web Server 設定檔
/etc/httpd/conf/httpd.conf
7. Yum 線上更新的設定檔
/etc/yum.conf
目前印象中大概安裝就這些基本的(不含後續安裝個別的網站程式);
這台主機好像沒有使用 Samba Server,
例行備份的東西通常應該包含了 Samba 才對;
後續:
1. 上面這些設定資料,如何定時、自動備份到遠端主機上(透過網路),以及在本地硬碟中各一份。
2. 是不是還有其他需要備份的?
3. 更新(更改)的組件或程式?
Centos安裝Clamav經驗分享(網路上取得)
Clamav版本Latest release: 0.81-1
安裝步驟
1.先下載這五個套件,因為我只用到前三個套件,其他的兩個下載留著用
1-1.(clamav-db-0.81-1.1.el3.rf.i386.rpm)
1-2.(clamav-0.81-1.1.el3.rf.i386.rpm)
1-3.(clamd-0.81-1.1.el3.rf.i386.rpm)
1-4.(clamav-devel-0.81-1.1.el3.rf.i386.rpm)
1-5.(clamav-milter-0.81-1.1.el3.rf.i386.rpm)
clamav-db-0.81-1.1.el3.rf.i386.rpm
下載位置
http://dag.wieers.com/packages/clamav/clamav-db-0.81-1.1.el3.rf.i386.rpm
clamav-0.81-1.1.el3.rf.i386.rpm
下載位置
http://dag.wieers.com/packages/clamav/clamav-0.81-1.1.el3.rf.i386.rpm
clamd-0.80-2.1.el3.rf.i386.rpm
下載位置
http://dag.wieers.com/packages/clamav/clamd-0.81-1.1.el3.rf.i386.rpm
3.先安裝clamav-db-0.81-1.1.el3.rf.i386.rpm
安裝命令如下
rpm -ivh clamav-db-0.81-1.1.el3.rf.i386.rpm
4.再安裝clamav-0.81-1.1.el3.rf.i386.rpm
安裝命令如下
rpm -ivh clamav-0.81-1.1.el3.rf.i386.rpm
5.最後安裝clamd-0.81-1.1.el3.rf.i386.rpm
安裝命令如下
rpm -ivh clamd-0.81-1.1.el3.rf.i386.rpm
6.啟動clamd
啟動命令如下
/etc/rc.d/init.d/clamd start
7.更新一下病毒碼
執行命令如下
freshclam
注意一下病毒碼是否更新為最新版的
ClamAV update process started at Sat Jan 29 14:48:18 2005
main.cvd is up to date (version: 29, sigs: 29086, f-level: 3, builder: tomek)
daily.cvd is up to date (version: 690, sigs: 802, f-level: 4, builder: trog)
6.測試一下ClamAV是否能夠掃瞄病毒
#掃描一下/tmp目錄,小弟故意放一個有毒的檔案,測試後,果然有毒
執行命令如下
clamscan /tmp
參考看看囉!