SPOF

Similar documents
Microsoft Word - 大量部署Linux doc

自由軟體教學平台

Windows 2000 Server for T100

同 步 學 習 指 教 學 者 與 學 生 們 一 起 在 指 定 的 時 間 內 上 線 學 習, 利 用 如 虛 擬 教 室 視 訊 會 議 串 流 媒 體 ( Streaming Video ) 等 互 動 工 具 而 優 點 為 可 以 解 決 地 理 上 限 制, 缺 點 則 無 時 間

Microsoft Word - PS2_linux_guide_cn.doc

TCA Linux 相容性認證測試流程步驟

<4D F736F F D20A677B8CBA448A448B3A3B77CA141A655A6B3A5A9A7AEA4A3A6502E646F63>

本文由筱驀釹贡献

自由軟體社群發展經驗與 Linux認證介紹

前言

IP505SM_manual_cn.doc

AL-M200 Series

ebook62-1

Abstract arm linux tool-chain root NET-Start! 2

電子商業伺服器管理(終極版).doc

Microsoft Word - linux命令及建议.doc

ch08.PDF

Pchome

投影片 1

DRBL/Clonezilla 進階課程 蕭志榥孫振凱 國家高速網路與計算中心 N

Microsoft Word - Windows版的Linux Installation Server.doc

Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

epub 61-2

目 彔 1. 准 备 工 作 登 彔 设 置 功 能 说 明 实 时 监 控 基 本 控 制 功 能 设 置 画 质 调 节 彔 像 与 抓 拍

ebook140-9

SAPIDO GR-1733 無線寬頻分享器

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

Microsoft Word - 新正文.doc

Microsoft Word - DIR-615_B2_Manual_1.00_T_.doc

IP-related security issues + DNS + DHCP

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

ebook140-8

Symantec NetBackup PureDisk™ 存储池安装指南 Windows、Linux 和 UNIX

<55342D323637CBB5C3F7CAE92E786C73>

epub

C3_ppt.PDF

專業式報告

投影片 1

PowerPoint 演示文稿

Simulator By SunLingxi 2003

一、

Sophos Central 快速安裝手冊

Microsoft Word htm

IP Access Lists IP Access Lists IP Access Lists

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

Windows XP

一.NETGEAR VPN防火墙产品介绍

Microsoft Word - kickstart.doc

ebook70-5

文 档 修 改 记 录 文 档 编 号 版 本 号 拟 制 人 / 修 改 人 拟 制 / 修 改 日 期 郁 勇 嘉 2012/12/25 初 稿 更 改 理 由 主 要 更 改 内 容 ( 写 要 点 即 可 ) 版 权 所 有, 侵 权 必 究 本 资 料 版 权 属 烽 火 通

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

ebook35-2

软件测试(TA07)第一学期考试

第一章 Linux與網路資源

1

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

國語 領域計畫表

1.ai

Microsoft PowerPoint - Performance Analysis of Video Streaming over LTE using.pptx

Unix®t Œ fi z.PDF

Norton Ghost 15.0 安裝操作指南

untitled

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

封面-12

P4V88+_BIOS_CN.p65

1 产 品 简 介 特 性 包 装 产 品 外 观 电 脑 系 统 要 求 硬 件 安 装 软 件 安 装 软 件 操 作 IP

Guide to Install SATA Hard Disks

文件1

摘 要 1. GSLB: 全 局 负 载 均 衡 2. SLB: 服 务 器 负 载 均 衡 四 层 交 换 LVS 七 层 交 换 Nginx 3. Heartbeat 实 现 HA 4. MySQL 数 据 库 集 群 5. 集 群 环 境 下 的 存 储 备 份 6. 集 群 的 监 控 及

Microsoft Word 利用LDAP整合Apache網頁驗證-IBM.doc

ebook62-8

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

附件9 电梯运行安全监测管理信息平台技术规范 第11部分:系统信息安全技术规范(征求意见稿)

K7VT2_QIG_v3

Linux服务器构建与运维管理

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

QL1880new2.PDF

untitled

Transcription:

內容 1 前言... 3 2 原理說明... 4 3 實作流程... 6 3.1 架設 Installation Server... 6 3.2 架設 PXE Server... 6 3.3 收集 MAC Address... 6 3.4 設定 dhcpd.conf... 7 3.5 建立 /tftpboot/pxelinux.cfg/default... 9 3.6 建立產生 PXE 設定檔的 shell script (mkpxe.sh)... 10 3.7 產生個別 IP 所對應的 PXE 檔案... 10 3.8 建立 kickstart cgi shell script (rhel-5.5.sh)... 11 3.9 建立刪除 PXE 設定檔的 CGI shell script (rmpxe.sh)... 12 3.10 修改 Boot Sequence, 進行自動安裝... 13 4 後記... 15 1/15 <2010-09-27 > Alex YM Lin

圖表 圖 1:PXE Menu 畫面... 4 圖 2: 產生 /etc/dhcpd.mac.lst 檔案... 7 圖 3: 修改 BIOS 的開機順序... 13 圖 4: 讀取 pxelinux.cfg/c0a80065 設定檔... 14 2/15 <2010-09-27 > Alex YM Lin

1 前言 筆者在去年寫了 如何大量部署 Linux 文章時後, 還有很多內容想寫, 不過實在沒時間動筆 時至今日, 趁著短暫假日, 好不容易動筆撰寫 如何大量部署 Linux 續篇 建議讀者閱讀此篇文章前, 可以先看前一篇 如何大量部署 Linux 文章, 網址如下 :http://linux.vbird.org/somepaper/20100901-pxe_ks.pdf 前篇 如何大量部署 Linux 文章的部署方法適合一般環境或是學校教室, 為什麼這樣說呢? 現實中, 企業在大量部署 Linux 時, 要求會比較嚴謹, 例如某台機器安裝完畢後應該就是所特定的主機名稱, 就是所特定的 IP, 安裝時也不該開機時還出現 PXE 選單, 然後再選擇所需安裝的作業系統, 應該要完全自動化, 機器開機後無需再輸入任何參數, 就會自動完成安裝 3/15 <2010-09-27 > Alex YM Lin

2 原理說明 PXE 跟 kickstart 的原理上一篇文章有大致的介紹, 在此就不再最贅述 ; 不過這篇要深入探討 PXE 的部份 上一篇文章的圖 6( 圖 1), 不知道筆者有沒有注意到 PXE 開機時的一些訊息 ip=192.168.0.251 Trying to load: pxelinux.cfg/01-00-0c-29-96-44-db Trying to load: pxelinux.cfg/c0a800fb 圖 1:PXE Menu 畫面其實 PXE 開機時, 會先找 PXE Server 上 pxelinux.cfg/ 目錄下有沒有跟網卡 MAC 一樣的設定檔 : Trying to load: pxelinux.cfg/01-00-0c-29-96-44-db 00-0c-29-96-44-db 就是 PXE 開機那張網卡的 IP, 如果找不到這個設定檔, 如果找不到的話, 就接著有沒有跟這張網卡上 IP 一樣的設定檔 : Trying to load: pxelinux.cfg/c0a800fb 讀者到這裏一定會???, 這張網卡從 DHCP Server 上要的 IP 不是 192.168.0.251, 跟 C0A800FB 有什麼關係? 呵呵, 這時候就得請 16 進位 出馬了, 其實 192.168.0.251 就是 C0A800FB 4/15 <2010-09-27 > Alex YM Lin

C0 是 16 進位的表示法,16 進位制中的 C 就是十進位的 12 16 進位就是數到 16 才進位, 所以個位數如下 : 1, 2, 3, 5, 6, 7, 8, 9, A( 代表 10), B( 代表 11), C( 代表 12), D( 代表 13), E( 代表 14), F( 代表 15) C0 換成 10 進位就是 C*16+0=12*16+0=192 A8 換成 10 進位就是 A*16+0=10*16+8=168 00 換成 10 進位就是 0*16+0=10*0+0=0 FB 換成 10 進位就是 F*16+B=15*16+11=251 這樣瞭解了嗎? 原來 C0A800FB 就是 1921680251 如果找不到 C0A800FB 就接著找 C0A800F C0A800 最後才採用 default 的內容 此篇文章的安裝流程便是利用此原理, 整個流程如下 : 1. 架設 Installation Server on RHEL 5.5 2. 架設 PXE Server 3. 收集欲安裝機器上網卡的 MAC( 其實 MAC 的收集與記錄是資產管理很重要的項目 ) 4. 在 dhcpd.conf 指定此 MAC Address 給予特定的 IP (ex. 192.168.0.101) 及 hostname (ex. station1) 5. 在 /tftpboot/pxelinux.cfg 目錄中建立 defalut 設定檔, 內容為從硬碟開機 6. 建立產生 PXE 檔案的 shell script, 並在 shell script 中指定所使用的 kickstart 檔 (http://server name/cgi-bin/rhel-5.5.sh) 7. 在 /tftpboot/pxelinux.cfg 目錄中建立此 IP(192.168.0.101) 所對應的 PXE 設定檔 (C0A80065) 8. rhel-5.5.sh 為利用 bash shell script 撰寫的 CGI 程式, 此程式會根據 Client 的 IP 及 dhcpd.conf 去產生對應的 kickstart 檔 ( 固定 IP=192.168.0.101 及設定 hostname) 9. 安裝完畢後,rhel_5.5.sh 在最後會刪除 /tftpboot/pxelinux.cfg 目錄中的 C0A800FB, 這樣下次重新開機時, 就不會重複安裝 10. 修改欲安裝機器的 Boot Sequence: Network Boot 放在第一順位, 然後 reboot, 便開始自動安裝 5/15 <2010-09-27 > Alex YM Lin

3 實作流程 3.1 架設 Installation Server #cd /var/ftp/pub/iso #ls rhel-server-5.5-x86_64-dvd.iso RHEL 5.5 DVD #mkdir /var/www/html/rhel-server-5.5-x86_64 #mount o loop rhel-server-5.5-x86_64-dvd.iso /var/www/html/rhel-server-5.5-x86_64 3.2 架設 PXE Server 接著安裝 syslinux, tftp-server 及 tftp 套件及啟用 tftp server # yum -y install syslinux tftp tftp-server #service xinetd start #chkconfig tftp on 3.3 收集 MAC Address 收集 MAC Address, 並先規畫好對應的 IP 及 hostname, 假設每個欄位是用逗號, 隔開的且內容如下, 並存檔為 mac station1,00:0c:29:3f:db:79,192.168.0.101 station2,00:0c:29:3f:db:57,192.168.0.102 station3,00:0c:29:3f:db:03,192.168.0.103 6/15 <2010-09-27 > Alex YM Lin

利用下列指令可以將 mac 轉換為 dhcpd.conf 的格式 : # cat mac sed 's/,/\t/g' while read i j k 此時按下 Enter 換行 > do > echo "host $i {" > echo " hardware ethernet $j;" > echo " fixed-address $k;" > echo "}" > done > /etc/dhcpd.mac.lst 圖 2: 產生 /etc/dhcpd.mac.lst 檔案 3.4 設定 dhcpd.conf 利用 rpm -q dhcp 指令先確認是否巳安裝 DHCP Server, 若無請利用 yum -y install dhcp 安裝 DHCP Server 然後將 dhcp 套件所提供的 dhcpd.conf 的 sample 檔 copy 為 /etc/dhcpd.conf #yum y dhcp 7/15 <2010-09-27 > Alex YM Lin

# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf # vi /etc/dhcpd.conf 接著修改 /etc/dhcpd.conf, 為了避免網段上其它的主機索取到 DHCP IP, 請將 range dynamic-bootp 192.168.0.128 192.168.0.254; 刪除 本篇文章假設真實環境的網段為 192.168.0.0/24, 所以只需在檔案最後 } 結尾上面加下 TFTP Server 及 MAC Address 的相關設定即可 ddns-update-style interim; ignore client-updates; subnet 192.168.0.0 netmask 255.255.255.0 { # --- default gateway option routers 192.168.0.1; option subnet-mask 255.255.255.0; option nis-domain option domain-name "domain.org"; "domain.org"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; # --- Selects point-to-point node (default is hybrid). Don't change this unless # -- you understand Netbios very well # option netbios-node-type 2; 8/15 <2010-09-27 > Alex YM Lin

range dynamic-bootp 192.168.0.128 192.168.0.254; default-lease-time 21600; max-lease-time 43200; # we want the nameserver to appear at a fixed address host ns { next-server marvin.redhat.com; hardware ethernet 12:34:56:78:AB:CD; fixed-address 207.175.42.254; } next-server 192.168.0.254; TFTP Server 是 192.168.0.254 filename "pxelinux.0"; PXE Linux boot loader pxelinux.0 include "/etc/dhcpd.mac.lst"; Include MAC Address 相關內容 } 只需在檔案最後結尾 } 上加入以上三行設定然後重新啟動 dhcp service #service dhcpd restart 3.5 建立 /tftpboot/pxelinux.cfg/default # mkdir pxelinux.cfg # cd pxelinux.cfg/ # chmod o+w /tftpboot/pxelinux.cfg # cat > default << EOF default 0 label 0 localboot 0 EOF 9/15 <2010-09-27 > Alex YM Lin

3.6 建立產生 PXE 設定檔的 shell script (mkpxe.sh) 利用下列的 script (mkpex.sh) 來產生個別的 PXE 設定檔 #!/bin/bash OUTDIR="/tftpboot/pxelinux.cfg" KSFILE=$(printf '%02X' ${1//./ }) cat > $OUTDIR/$KSFILE << EOF DEFAULT 0 LABEL 0 kernel vmlinuz append initrd=initrd.img noipv6 ks=http://192.168.0.254/cgi-bin/rhel-5.5.sh EOF ln -s $OUTDIR/$KSFILE $OUTDIR/$1 3.7 產生個別 IP 所對應的 PXE 檔案 #chmod 755 mkpxe.sh #./mkpxe.sh 192.168.0.101 # cat /tftpboot/pxelinux.cfg/c0a80065 DEFAULT 0 LABEL 0 kernel vmlinuz append initrd=initrd.img noipv6 ks=http://192.168.0.254/cgi-bin/rhel-5.5.sh 10/15 <2010-09-27 > Alex YM Lin

3.8 建立 kickstart cgi shell script (rhel-5.5.sh) 下面是筆者針對 RHEL 5.5 Full Installation 所撰寫的 CGI shell script( 要置於 /var/www/cgi-bin/ 目錄 ) #vi /var/www/cgi-bin/rhel-5.5.sh #!/bin/bash HOSTNAME=`grep -B 2 $REMOTE_ADDR /etc/dhcpd.include.mtk grep host awk '{print $2}'` echo "Content-Type: text/html; charset=iso-8859-1" echo echo "text" echo "key --skip" echo "keyboard us" echo "lang en_us" echo "langsupport --default en_us en_us" echo "network --device=eth0 --bootproto=static --ip=$remote_addr --netmask=255.255.255.0 --gateway=192.168.0.254 --hostname=$hostname" echo "url --url http://192.168.0.254/rhel-server-5.5-x86_64" echo "bootloader --location=mbr --driveorder=sda" echo "clearpart --all" echo "part /boot --fstype ext3 --size=256" echo "part pv.3 --size=61440 --grow" echo "volgroup rootvg --pesize=32768 pv.3" echo "logvol / --fstype ext3 --name=rootlv --vgname=rootvg --size=30720" echo "logvol swap --fstype swap --name=swaplv --vgname=rootvg --size=2048" 11/15 <2010-09-27 > Alex YM Lin

echo "logvol /home --fstype ext3 --name=homelv --vgname=rootvg --size=1024" echo "logvol /var/ftp/pub --fstype ext3 --name=publv --vgname=rootvg --size=10240" echo "mouse genericps/2 --emulthree" echo "timezone Asia/Taipei --utc" echo "skipx" echo "rootpw redhat" echo "authconfig --useshadow --enablemd5" echo "firewall --disabled" echo "selinux --disabled" echo "bootloader" echo "reboot" echo "%packages" echo "'@Everything'" echo "'-@Conflicts'" RHEL 5.5 Full Installation 時要額外加上此參數, 不可以只寫 @Everything echo "%post" echo "links --dump http://192.168.0.254/cgi-bin/rmpxe.sh" 3.9 建立刪除 PXE 設定檔的 CGI shell script (rmpxe.sh) rmpxe.sh 要置於 /var/www/cgi-bin/ 目錄, 其目的是當安裝完畢後要刪除 /tftpboot/pxelinux.cfg 目錄內的 PXE 設定檔, 在 rhel-5.5.sh 的最後一行會呼叫此 CGI shell script #!/bin/sh OUTDIR="/tftpboot/pxelinux.cfg" KSFILE=$(printf '%02X' ${REMOTE_ADDR//./ }) 12/15 <2010-09-27 > Alex YM Lin

echo "Content-Type: text/html; charset=iso-8859-1" echo rm $OUTDIR/$KSFILE rm $OUTDIR/$REMOTE_ADDR 記得啟動 http server #service httpd restart 3.10 修改 Boot Sequence, 進行自動安裝 進入欲安裝機器的 BIOS, 修改 Boot sequence, 將 Network boot 放在第一順位, 存檔後開機, 便會自動進行安裝 圖 3: 修改 BIOS 的開機順序 13/15 <2010-09-27 > Alex YM Lin

開機時, 可以發現跟前篇文章的開機畫面不一樣的地方, 欲安裝主機會讀取針對 此台主機特定的 PXE 設定檔 pxelinux.cfg/c0a80065,, 便開始自動進行安裝, 不需像前篇文章的作法, 還得根據選單去選取所欲安裝的內容 圖 4: 讀取 pxelinux.cfg/c0a80065 設定檔 14/15 <2010-09-27 > Alex YM Lin

4 後記 其實大量部署 Linux 的方法除了 kickstart 這種 reinstall 的方法, 還有一個流派是用 image 的方式, 像 system imager (http://wiki.systemimager.org/) 或 GHOST 這類的軟體, 各有各自的優缺點, 筆者很想多寫一些東西, 不過現在動筆寫東西對我來講愈來愈難了, 就先到此打住, 希望有機會再跟大家分享一些心得 15/15 <2010-09-27 > Alex YM Lin