星期五, 6月 29, 2007

DRBL 實做訓練課程

20070629

Freedom to Use, Copy, Modify and Distribute(修改後在散播)

重點在於修改後是否可以散播


今天使用Fedora來做實驗平台

步驟一: 安裝Linux

  1. 重新開機

  2. 選取Fedora 6 i386 installation vi network

  3. Chinese(Traditional) --> OK --> OK --> OK

  4. Installation Method: 選取HTTP --> OK --> 選取網路卡(如果有出現) --> OK

  5. 使用DHCP Ipv4 --> OK

  6. HTTP Setup: Website name: free.nchc.org.tw Fedora Core directory: /fedora/linux/core/6/i386/os --> OK

  7. 下一步 --> 移除所選磁碟上的所有分割區,並建立預設的分割模式--> 下一步

  8. --> 下一步 --> 下一步 --> 下一步 --> 下一步

  9. 輸入root密碼 -->下一步 --> 下一步 --> 下一步(開始安裝) -->重新開機

  10. 於首次開機設定停用防火牆及SELinux


步驟二: 安裝DRBL

  1. root登入linux

  2. 開啟 http://drbl.nchc.org.tw --> 點選下載與安裝(觀察相關設定)

  3. 開啟網卡設定#system-config-network, 將第二張網卡設定固定IP, 設定為192.168.200.254/255.255.255.0 並啟用eth1

  4. 使用 #ifconfig 確認網卡是否設定正確

  5. 下載DRBL的金鑰 #wget http://drbl.nchc.org.tw/GPG-KEY-DRBL

  6. 匯入DRBL的金鑰 #rpm --import GPG-KEY-DRBL

  7. 下載DRBLRPM檔 使用穩定版 http://drbl.nchc.org.tw/one4all/desktop/download/stable/RPMS/drbl-current.i386.rpm

  8. 安裝DRBL套件(使用root身份) #rpm -Uvh /root/Desktop/drbl-current.i386.rpm

  9. 檢查DRBL是否有安裝#rpm -q drbl

  10. 場景1: 假如對外網路順暢,你的套件有提供apt, urpmi或是yum的儲藏庫: 執行#/opt/drbl/sbin/drblsrv -i 會出現選取語系畫面(此功能會準備DRBL的環境DHCP) --> 選取2(中文) --> N(不使用代理伺服器) --> y(選自己的儲藏庫) --> 0(選取國網中心) --> 0 (選取國網中心) --> N(不使用不穩定版程式) --> N(不使用測試版的程式) --> y(允許Client透過網路安裝) --> N(不使用終端機) --> 1(使用i586 CPU等級架構) --> N(不升級作業系統) --> 4(Client安裝預設的發行版本kernel)



步驟三 在server上建置client的檔案系統

  1. 執行#/opt/drbl/sbin/drblpush -i (將用戶端所需要的檔案產生出來)

  2. 2(中文) --> 輸入網域名稱 --> 輸入NIS網域名稱 --> 輸入前置字元 --> 選取對外網卡 --> y(收集用戶端網卡卡號, 練習時兩台電腦用Cross-over線串接,server端串接eth1, client端用eth1串接) --> 1(觀察收集的網卡位址) --> 2(結束收集網卡位址) --> y(鎖定MAC發放IP) --> 輸入檔名(MAC位址存檔) --> 1(IP位址的起始值) --> Y --> Enter(列出網路示意圖) --> 0(完整的DRBL模式) --> 0(完整的Clonezilla模式) -->Clonezilla印象檔儲存位置 --> Y(使用SWAP) --> 128(使用SWAP 大小) --> 1(圖形模式) --> 0(一般登入) --> N(不設定clinet管理者密碼) --> N不設定開機密碼 --> Y(是否可以選取OS) --> 70(提示符號等待7) -->Y(是否使用圖形背景選單) --> N(是否設定client電腦公用IP) -->N(是否開放終端機模式給用戶端) -->Y(提供NAT功能--IP分享功能) -->Enter --> Y(開始部屬)

  3. 如果部屬過程中出現 XXXXXXX XXXXXX XXXXXX Failed to start service ypbind 可以下#service ypserv restart來解決


步驟四 讓client(也就是學生用的機器)網路開機

    說明:用戶端機器的網卡有PXE網路開機功能,直接將用戶端電腦的BIOS設定成網路開機就可以當DRBLclient了。2003()以後新購買的電腦,主機板內建的網卡幾乎都有 PXE功能,您可以進BIOS查看看,然後把那個PXE網路開機功能開啟。請參考你的主機板手冊為準。一般來說,設定的地方在Advanced -> Onboard Devices Configuration -> Onboard LAN -> Onboard LAN Boot Rom -> Enabled。另外,幾個地方建議這樣調整,以方便由DRBL server集中管理: (1) Boot order設成優先順序為LAN -> CDROM -> HD (2)開啟Wake on LAN (可能在APM Configuration -> Power On By PCI Devices)

  1. client的電腦重新開機, 此時應該會看到有Fedora 6 的選單(預設值),就可以透過網路來運作無碟Linux


Notes:

  1. DRBL只是把網路線取代排線去連接電腦而已

  2. 開機選單的背景圖位置/tftpboot/nbi_img/drblwp.png

  3. /tftpboot下面

  • nbi_img: 開機的檔案

  • nodes: 每一個clinet各自的設定檔位置, 可針對個別電腦的/tftpboot/nodes/用戶端IP/etc 做不同的設定

  • node_root: 共同掛載的分割區



管理與使用

#/opt/drbl/sbin/dcs --> 2(中文) --> 確定

可以進行用戶端管理例如

  1. 設定client是以圖形或是文字介面開機

  2. 重新開機或是關閉用戶端電腦

#/opt/drbl/sbin/drbl-cp-host

可複製檔案到所有的用戶端的 dev, etc, root, var資料夾

例如#/opt/drbl/sbin/drbl-cp-host /root/anaconda-ks.cfg /root

可以把server上面的/root/anaconda-ks.cfg 複製到用戶端的/root目錄下面


#/opt/drbl/sbin/drbl-rm-host

可刪除用戶端的dev, etc, root, var 資料夾的檔案

例如#/opt/drbl/sbin/drbl-cp-host /root/anaconda-ks.cfg /root/anaconda-ks.cfg


#/opt/drbl/sbin/drbl-cp-user

放置檔案到用戶端的家目錄

#/opt/drbl/sbin/drbl-get-user

移除用戶端的家目錄某一個檔案



Lab: drbl-win-Roll 安裝

功能:

  • 自動修改 Windows 主機名稱、工作群組

  • 自動判斷隨機 SID、自動配置 sshd

  • 簡潔方式協助相關軟體安裝與配置,安裝在一套 Windows 範本機器後即可大量還原。

  • 提供Windows Client DRBL環境中接受主機命令

  • 可以依需求分群: 自動群組名稱


  1. 將客戶端電腦開啟為Windows

  2. http://drbl.nchc.org.tw/ 點選 drbl-winRoll安裝

  3. 下載檔案 http://drbl.nchc.org.tw/drbl-winroll/download/stable/drbl-winroll-setup_current.exe

  4. 執行drbl-winroll-setup_current.exe

  5. Y(安裝自動主機名稱服務) --> 1(取後面六碼數字) --> PC(前置字元) --> Y(自動工作群組名稱) --> 1(固定字串) -->設定群組名稱前置字元 --> N(安裝自動主機SID服務) --> Y(安裝sshd服務) --> Enter

  6. server上面建立金鑰並複製到Client機器上的C:\cygwin\home\adminstrator\.ssh\authorized_keys

  1. 此時用戶端就可以接受DRBL主機的指令



*Clonezilla

建置條件

Server: DRBL主機有安裝Clonezilla

用戶端: Windows主機安裝drbl-winroll 的程式

Lab:複製用戶端到主機

  1. Server主機上面#/opt/drbl/sbin/dcs

  2. 2(中文) -->確定 --> clonezilla-start --> 確定 --> save-disk --> 確定 --> --> 輸入名稱 --> 確定 --> 選取裝置 --> 確定 --> 確定 -->確定 --> 確定

  3. 將用戶端重新開機就會開始儲存


Lab:還原用戶端

先將用戶端的環境改變

  1. server主機上面#/opt/drbl/sbin/dcs

  2. 2(中文) -->確定 --> clonezilla-start --> 確定 --> restore-disk --> 確定 --> 確定 --> 確定(不提供再生龍選項給用戶端) --> 確定 --> 選取印象檔 -->確定 --> 選取硬碟 --> 確定 --> 選取還原模式 --> 確定 --> 選取還原方式 --> 確定 -->輸入還原電腦數量 --> 確定 --> 輸入等待時間 -->確定

  3. 將用戶端重新開機(會出現Clonezilla選項, 且為預設值), 就會開始還原




Lab: Clonezilla live

http://drbl.nchc.org.tw/clonezilla/clonezilla-live/

製作live版的clnoezilla

可以使用網頁上面的CD or USB 方式


Lab-1:也可以使用DRBL伺服器製作

以下為包含Windowsimgclonezilla live

#/opt/drbl/sbin/ocs-iso 用戶端img檔案

例如#/opt/drbl/sbin/ocs-iso 2007-06-29-15-img

-->2(中文) --> y(如果超過一片CD會確認是否繼續製作)

#ls (此時在目錄下面就會產生相關iso)


Lab-2: 如果有隨身碟也可以利用DRBL直接製作

#/opt/drbl/sbin/ocs-live-dev -s -d /dev/sda1


Notes:

如果要讓用戶端自行決定要不要使用clonezill, 自行存檔

  1. #/opt/drbl/sbin/dcs

  2. 2(中文) --> 確定 --> clonezilla-start --> 確定 --> select-in-client --> 確定 --> 確定(給用戶端再生模式, 預設為還原) --> 確定(用戶端複製完畢才選擇模式)

  3. 將用戶端重新開機





星期三, 6月 13, 2007

SUSE Linux下Vi

在SuSE Linux 下的Vim
跟Redhat系列有些不一樣
在網路上看到有人說裝vim-enhanced
就可以克服^^

例如說預設沒有開啟 syntax on
.....但是裝了vim-enhanced
還是沒有 syntax on
所以解決方案是在家目錄
#vi .vimrc
syntax on

這樣的方式解決也不錯

星期四, 6月 07, 2007

rsync 作資料備份

之前使用rsync都是做異地備援
今天拿來做本機的資料夾備份
使用指令如下
#rsync -av /backup /media/backup

^^

星期三, 5月 30, 2007

Open SUSE 安裝來源

之前有加入packman的安裝來源來更新
但是由於安裝來源是德國的主站
故一直覺得速度很慢
參考 Open SuSE的FAQ
http://en.opensuse.org/Users_FAQ#Package_Sources.2FRepositories

找到相關的套件來源
http://opensuse-community.org/Package_Sources

在Packman套件來源的說明
http://opensuse-community.org/Package_Sources/Packman

United States

選了美國的mirror站
果然速度有快了一點


下次想找台灣的mirror站

sshd 使用key驗證, 不允許密碼驗證

在使用ssh來做遠端管理
大部分的方式會在/etc/hosts.allow, 以及/etc/hosts.deny來設定特定ip可以存取ssh

但是如果不想使用/etc/hosts.allow或是 /etc/hosts.deny 來限制IP存取
可以使用key驗證加上拒絕使用密碼驗證來代替
作法
1.在client產生 公鑰及私鑰利用
#ssh-keygen -d
會在~/.ssh/建立兩把key
[max@localhost .ssh]$ ls
id_dsa id_dsa.pub

將public key 複製到對方的機器並命名為authorized_keys
$scp id_dsa.pub 帳號@主機:/home/帳號/.ssh/authorized_keys

嘗試連結到對方主機
$ssh 對方主機的ip
應該不需要驗證密碼

2.在server 上面修改sshd 的設定
#vi /etc/ssh/sshd_config

PermitRootLogin no
UsePAM no
PasswordAuthentication no

#service sshd restart

^^
這樣應該就會比較放心一點
^^

SWAP 標籤

在RHEL/Fedora core 3開始在SWAP 有標籤的方式出現
重點是在新的mkswap有 -L 的選項

NAME
mkswap - set up a Linux swap area

SYNOPSIS
mkswap [-c] [-vN] [-f] [-p PSZ] [-L label] device [size]

-L label
Specify a label, to allow swapon by label. (Only for new style swap areas.)

所以RedHat/Fedora 就在 /etc/fstab有LABEL=swap-hda7這樣的寫法出現
但是一定有人會問說
哪如何使用像 e2lable的指令查出swap的 LABEL名稱呢?
答案是使用 blkid

[root@localhost tmp]# whatis blkid
blkid (8) - command-line utility to locate/print block device attributes



可以使用
#blkid -s LABEL 來查看LABEL 的名稱

^^

星期日, 5月 13, 2007

SUSE Linux下Remote control 套件及方式

之前在RedHat/Fedora 之下的遠端管理都是透過
tsclient 搭配rdesktop or vnc
但是在OpenSUSE的軟體管理沒有看到tsclient這個套件

故在管理上選取了另外一個套件

kdenetwork3-vnc - Exporting of VNC and Connecting of VNC/RDP Sessions

This package contains tools for VNC/RDP usage:
KRfb - to allow remote access to your current desktop. krdc - a VNC/RDP client, it can discover remote VNC sessions via SLP or connect to manually specified rdp:// sessions.
KRfb allows to connect to kdm-VNC sessions or to provided desktops via KRfb.

有包含krdc這個套件來連接VNC
也可以用vncviewer這個套件來處理
但是還是比較習慣兩個都有

連接的方式為
#krdc
選取連接的server
例如
xx.xx.xx.xx:1
--> 連線
來連接, 雖然Listen的Port為5901但是非以 xx.xx.xx.xx:5901的方式來連接

或是
#vncviewer xx.xx.xx.xx:1
的方式來連接

^^
不太習慣用圖形介面來控管
sshd用習慣了, 所以要記下來一下^^

星期三, 5月 09, 2007

在Linux 環境下使用mplayer播放vmware 擷取的影片

在VMWare內有一個不錯的功能為 Capture Movie
可以錄下VMWare下面的操作畫面
但是需要安裝他的code
在Linux下面只要使用YUM 或是相關的套件管理程式安裝
ffmpeg 及 ffmpeg-devel
就可以直接使用mplayer 觀看錄下的影片
^^

星期四, 4月 26, 2007

SUSE Linux 下的 SAMBA 伺服器

SUSE Linux 下的 SAMBA 伺服器
基本上跟RedHat系列的設定差不多
只是預設分享的目錄有點不太一樣
RedHat 預設分享homes 及 printers兩個目錄
[root@localhost ~]# cat /etc/samba/smb.conf |grep '\[' | grep -v '^;' | grep -v '^#'

[global]
[homes]
[printers]

但是SUSE Linux 預設分享的資料夾比較多, 多了profiles users groups print$
故要注意安全性的問題
linux-lab:/etc/samba # cat smb.conf | grep '\['
[global]
[homes]
[profiles]
[users]
[groups]
[printers]
[print$]


上面的print$ 為印表機驅動程式的分享

若以samba來當PDC
可以直接用yast 來設定
Domain Controller 為Primary (PDC)
及設定workgroup 的名稱 (即網域名稱)
附註只要有跑過yast的設定來分享
那gobal的設定部份就會加上
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$

方便加入Windows的機器, 也就是說Windows的機器提出要求後, 系統會自動加入帳號, 非以往要手動建立帳號,
在RedHat那邊有此script 的設定, 只是註解起來

設定好PDC 之後, 相關性的設定會儲存在 /var/lib/samba
linux-lab:/var/lib/samba # pwd
/var/lib/samba

相關檔案如下
linux-lab:/var/lib/samba # ls
account_policy.tdb group_mapping.tdb ntprinters.tdb share_info.tdb
brlock.tdb locking.tdb perfmon unexpected.tdb
browse.dat messages.tdb printing usershares
connections.tdb netlogon profiles
drivers ntdrivers.tdb registry.tdb
gencache.tdb ntforms.tdb sessionid.tdb

觀察兩個目錄 profiles and netlogon
linux-lab:/var/lib/samba # ls profiles/
linux-lab:/var/lib/samba # ls netlogon/

Windows機器加入後會自動加入機器帳號
linux-lab:/var/lib/samba # tail -n 2 /etc/passwd
hacluster:x:90:90:heartbeat processes:/var/lib/heartbeat/cores/hacluster:/bin/false
student-max$:x:1001:100:Machine:/var/lib/nobody:/bin/false

Windows加入網域後,以linux 本機帳號登入後檢查
linux-lab:/var/lib/samba # ls profiles/
linux-lab:/var/lib/samba # ls netlogon/

登出 Windows機器後檢查
linux-lab:/var/lib/samba # ls profiles/
linux-lab:/var/lib/samba # ls netlogon/
還是沒有資料 ---------->這時候會發現與RedHat不同處

在RedHat系列,設定為
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes

在SUSE Linux 設定為
[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
其路徑在 %H
故存放的地點為 使用者家目錄下的 .msprofile 資料夾
故我們測試一下
在還沒使用 samba 服務登入Windows之前使用者家目錄
linux-lab:/home/max # ls
.bash_history .emacs .gnu-emacs .mozilla .urlview .xim.template Documents
.bashrc .exrc .inputrc .muttrc .xcoralrc .xinitrc.template bin
.dvipsrc .fonts .kermrc .profile .xemacs .xtalkrc public_html

登入Windows機器之後
linux-lab:/home/max # ls
.bash_history .exrc .kermrc .profile .xim.template bin
.bashrc .fonts .mozilla .urlview .xinitrc.template public_html
.dvipsrc .gnu-emacs .msprofile .xcoralrc .xtalkrc
.emacs .inputrc .muttrc .xemacs Documents
linux-lab:/home/max # ls .msprofile/

多了.msprofile資料夾,但是是空的,因為登出才會回存^^
在Windows機器上, 於我的文件新增一個資料夾sakana測試
登出Windows機器觀察

linux-lab:/home/max # ls .msprofile/
Application Data My Documents PrintHood Templates ntuser.ini ??????
Cookies NTUSER.DAT Recent UserData ntuser.pol
Favorites NetHood SendTo ntuser.dat.LOG ?????????????????????

linux-lab:/home/max # ls .msprofile/My\ Documents/
My Music My Pictures desktop.ini sakana

果然有回存到samba伺服器上面
^^

SUSE Linux 下的 NFS 伺服器

SUSE Linux 下的 NFS 伺服器
在SUSE Linux 下面
有nfs 和 nfsserver兩個daemon 於SUSE Linux下

但是啟動nfs 服務
是使用
#rcnfsserver start
來啟動nfs服務

但是要注意 rquotad 預設跟RedHat 系列不一樣
預設是沒有啟動
可用
#rpcinfo -p 127.0.0.1
觀察
如果要啟動rquotad
必須安裝
quota的套件
可用
#yast -i quota 來安裝

安裝完畢之後要啟動
#rcquotad start
# chkconfig quotad --list
quotad 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig quotad on
# chkconfig quotad --list
quotad 0:off 1:off 2:off 3:on 4:off 5:on 6:off

提到quota
如果開機要啟動quota
要在開機啟動boot.quota

預設是沒有啟動的
linux-lab:~ # chkconfig boot.quota --list
boot.quota 0:off 1:off 2:off 3:off 4:off 5:off 6:off

也非使用rcboot.quota來控制
linux-lab:~ # rcboot.quota status
-bash: rcboot.quota: command not found

如果chkconfig boot.quota --list 沒看到那就要使用insserv 這個指令加進來
linux-lab:~ # insserv boot.quota

可是還是跟rc的方式無關喔只是開機的時候要不要帶起來
linux-lab:~ # rcboot.quota status
-bash: rcboot.quota: command not found

下了insserv 這個指令就會把boot.quota帶起來
linux-lab:~ # chkconfig boot.quota --list
boot.quota 0:off 1:off 2:off 3:off 4:off 5:off 6:off B:on
上面那個B: on 代表 boot的時候會帶起來

可以使用chkconfig 來控制要不要帶起來
linux-lab:~ # chkconfig boot.quota off

linux-lab:~ # chkconfig boot.quota --list
boot.quota 0:off 1:off 2:off 3:off 4:off 5:off 6:off

linux-lab:~ # chkconfig boot.quota on
linux-lab:~ # chkconfig boot.quota --list
boot.quota 0:off 1:off 2:off 3:off 4:off 5:off 6:off B:on

********************************************************************
有關於autofs 設定檔的位置沒有太大的差異
但是對於timeout的寫法是有差異的

於RedHat 系列或是他的註解說明內
/misc /etc/auto.misc --timeout=60
但是這樣的寫法在SUSE Linux會有錯誤
Starting service automounter/usr/sbin/automount: option -t requires a numeric argument, got imeout

原因是timeout的寫法與註解及RedHat系列不一樣
故寫法為
#監控目錄 該目錄的設定檔 幾秒不用就Timeout
/misc /etc/auto.misc --timeout 60

沒有等於"="的寫法才是正確的

如果要設定全部的選項
可以去修改 /etc/sysconfig/autofs
AUTOFS_OPTIONS=""

啟動的方法一樣是
#rcautofs start

SUSE Linux 下的 DNS 伺服器

SUSE Linux 下的DNS 伺服器
預設Zone file擺放路徑為
/var/lib/named

跟RedHat系列擺放的 /var/named 有一點差異

預設也是有裝 bind-chrootenv
故zone會擺放在
/var/lib/named/var/lib/named

可參考 /etc/sysconfig/named
內有設定 NAMED_RUN_CHROOTED="yes"

另外在/etc/named.conf 裡面的設定
大多數是使用 include 的方式
其設定資料夾在 /etc/named.d 下
以及/etc/named.conf.include

其餘的部份與RedHat 相去不遠