先上拓撲圖吧html
0、使用虛擬機作實驗的規劃 一、ip地址的規劃,模板練習機器1對應10.0.0.11,依次類推 二、全部的服務器配置好epel源 三、全部的服務器都要作內核優化(基本) 四、每一個實驗都要有詳細的文檔 五、模擬實驗故障,並作記錄 六、所用系統均爲centos6.5for 64bit 內核版本號爲2.6.32-431
第一部分:基本準備篇ubuntu
實驗環境爲centos6.5for 64bitcentos
經驗:建議安裝kickstart-server爲mini desktop做爲模板機,這樣方便之後製做anaconda安裝引導文件!bash
此版本爲ftp版本的哦!服務器
0、kickstart自動化部署服務器安裝:網絡
隨着公司業務不斷增長,常常須要採購新服務器,並要求安裝Linux系統,而且要求Linux版本要一致,方便之後的維護和管理,每次人工安裝linux系統會浪費掉更多時間,若是咱們有辦法能節省一次一次的時間豈不更好呢?架構
大中型互聯網公司一次採購服務器上百臺,若是採用人工手動一臺一臺的安裝,一我的得搞壞N張光盤,得多少個加班加點才能完成這項」艱鉅」的任務呢,咱們能夠看到全人工來完成這樣的工做太浪費人力了,有沒有自動化安裝平臺呢,經過一臺已存在的系統而後克隆或者複製到新的服務器呢。Kickstart能夠絕不費力的完成這項工做。app
PXE(prebootexecute environment,預啓動執行環境)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做站經過網絡從遠端服務器下載映像,並由此支持經過網絡啓動操做系統,在啓動過程當中,終端要求服務器分配IP地址,再用TFTP(trivialfile transfer protocol)協議下載一個啓動軟件包到本機內存中執行。less
要使用kickstart安裝平臺,包括的完整架構爲:Kickstart+DHCP+ftp+TFTP+PXE,從架構能夠看出,大體須要安裝的服務,例如dhcp、tftp、nfs、kickstart/pxe等。
PXE環境的配置預熱 關閉防火牆和selinux /etc/init.d/iptablesstop chkconfigiptables off setenforce0 sed-i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
1、首先要部署好DHCP服務器
第1步安裝DHCP服務器軟件 yum -y install dhcp 安裝以後查看安裝後生成了哪些文件 rpm -ql dhcp |less 小提示:配置以前要看下本機的ip地址,由於配置DHCP服務器的地址池是須要和本機的在同一網絡地址段的哦 [root@mobai~]# ip a |grep gl inet 10.0.0.18/24 brd 10.0.0.255 scope globaleth0
第2步配置DHCP DHCP默認配置文件爲空,這裏拷貝模板配置文件 /bin/cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf >/etc/dhcp/dhcpd.conf 拷貝如下內容
ddns-update-styleinterim; ignoreclient-updates; allowbooting; allowbootp; subnet10.0.0.0 netmask 255.255.255.0 { #--- default gateway optionrouters 10.0.0.254; optionsubnet-mask 255.255.255.0; optiontime-offset -18000; range dynamic-bootp 10.0.0.3 10.0.0.200; next-server10.0.0.18; filename"pxelinux.0"; hostns { hardwareethernet 00:0C:29:C8:12:84; fixed-address10.0.0.12;} }
注: 00:0C:29:C8:12:84爲指定DHCP客戶端的MAC地址
1、必需要存在的一個指令是subne,至少須要一個,後面跟網段以及子網掩碼,而後以大括號擴起來,裏面包含針對這個subnet的指令
2、subnet {}裏面所定義的網段,必定是要和本機所在的網段是一致的,Linux可使用ifconfig來查看本機的ip地址信息
3、subnet以外的設置都是針對全局的配置文件生效的subnet以外的設置都是針對全局的配置文件生效的
4、range指定地址段的範圍
5、host指令,主要是根據客戶端的MAC地址,進而綁定分配特定的ip
第4步檢測語法,啓動DHCP服務,並加入開機自啓動
/etc/init.d/dhcpd configtest /etc/init.d/dhcpd restart && chkconfig dhcpd on
第5步 測試DHCP客戶端獲取ip地址(可省略)
另外開啓一臺虛擬機,看可否獲取到ip地址爲10.0.0.12
[root@moban~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
或者更爲簡單的就是直接使用kickstart的客戶端便可
小結: dhcp搞定 第一安裝yum -yinstall dhcp 第二配置dhcp中最重要的兩個參數 next-server表明tftp服務器 filename 第三就是爲了讓kickstart客戶端獲取ip地址
2、部署tftp服務器
第一步:安裝 yum -y install tftp-server syslinux 第二步複製配置文件並修改 cd /var/lib/tftpboot &&cp /usr/share/syslinux/pxelinux.0 . 第四步修改tftp可用 sed -i 's/= yes/= no/g' /etc/xinetd.d/tftp grep disable /etc/xinetd.d/tftp 第五步:啓動,並設置開機自啓動 /etc/init.d/xinetd start chkconfig xinetd on && chkconfig tftp on server_atgs = -s /var/lib/tftpboot //客戶端到此目錄下去獲取或者上傳數據 /etc/init.d/dhcpd restart && /etc/init.d/xinetd restart
3、配置tftp+pxe
安裝和配置tftp服務(準備簡單的PXE環境)
要實現遠程安裝系統,首先要在tftpboot目錄指定相關PXE內核模塊及相關參數配置步驟以下
cd /var/lib/tftpboot/ && mount /dev/cdrom /mnt/ cp -rvp /mnt/isolinux/* /var/lib/tftpboot/
cd /var/lib/tftpboot/ && mkdir pxelinux.cfg cp /var/lib/tftpboot/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default /etc/init.d/dhcpd restart && /etc/init.d/xinetd restart ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
註釋說明:
3)客戶端鏈接tftp-server去上傳數據或者下載數據,都會從這個目錄去獲取 所以須要到這個目錄下去放置一些數據 1)pexlinux.0文件(當客戶端啓動的時候就會啓動此文件) 硬盤啓動通常去加載的啓動程序是grub;PXE網絡啓動的話,首先要加載的就是 pexlinux.0這個程序 2)此文件是有syslinux安裝包提供的rpm -qsyslinux,若沒安裝 直接使用yum -y install syslinux安裝便可 cd /var/lib/tftpboot/ rpm -q syslinux find /usr/ -name "pxelinux.0" /usr/share/syslinux/pxelinux.0 3)拷貝pexlinux.0文件到tftp的/var/lib/tftpboot根目錄下 cp /usr/share/syslinux/pxelinux.0 . ll total 28 -rw-r--r-- 1 root root 26595 Oct 18 00:22 pxelinux.0 4)還須要在tftp的根目錄下去放置一個叫作pxelinux.cfg目錄配置文件 這個配置文件是有要求的,名字叫作是pxelinux.cfg這個目錄裏面的 cd /var/lib/tftpboot/ && mkdir pxelinux.cfg cp isolinux.cfg pxelinux.cfg/default cp: overwrite `pxelinux.cfg/default'? y ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5、配置ftp配置FTP服務(準備安裝源)
掛載ISO鏡像可使用autofs來實現哦!
遠程安裝系統,客戶端須要下載系統所須要的軟件包,因此須要使用NFS或者HTTPD把鏡像文件共享出來,這裏介紹使用ftp的方式來掛載和安裝
yum -y install vsftpd autofs echo "/var/ftp/pub /etc/auto.ftp" >>/etc/auto.master cat /etc/auto.ftp //添加下面兩行內容 centos -fstype=iso9660,ro,loop :/data/CentOS-6.5-x86_64-bin-DVD1.iso ubuntu -ftype=iso9660,ro,loop :/data/ubuntu-14.04.1-server-amd64.iso mkdir /data
經過scp上傳鏡像文件到/data目錄下 ll /data/CentOS-6.5-x86_64-bin-DVD1.iso -rw-r--r-- 1 root root 4467982336 Apr 16 2014 /data/CentOS-6.5-x86_64-bin-DVD1.iso [root@moban ~]# ll /data/ubuntu-14.04.1-server-amd64.iso -rw-r--r-- 1 root root 599785472 Oct 18 11:38/data/ubuntu-14.04.1-server-amd64.iso /etc/init.d/vsftpd restart&& /etc/init.d/autofs restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ] Stopping automount: [ OK ] Starting automount: [ OK ]
六、最簡單PXE環境準備
一、 經過網絡找到tftp服務器以後,還須要去找pxelinux.0這個文件(tftp引導程序) 二、 還須要讀取isolinux裏面的全部文件(經過光盤安裝的時候就是讀取這個裏面的全部的文件) 三、 顯示文件(boot.msg) 四、 重點vmlinuz內核文件 五、 重點initrd.img(初始化閃存文件),裏面有驅動程序之類的 六、 isolinux.cfg配置文件 七、 pxelinux.cfg目錄文件 八、拷貝isolinux.cfg到 pxelinux.cfg目錄文件並更名爲default
# cp isolinux.cfg pxelinux.cfg/default cp: overwrite `pxelinux.cfg/default'? y
pxelinux.0+vmlinuz+initrd.img+ISO鏡像文件+default 上面介紹的只是能經過網絡的形式來進行安裝 若是須要使用全自動安裝的方式則還須要藉助kickstart文件來安裝 一、 安裝圖形工具,並生成ks文件 二、 yum –yinstall system-config-kickstart 三、 system-config-kickstart 四、配置好kickstart文件以後,上傳到ftp服務器的根目錄下 五、修改default配置文件(告知ftp中ks.cfg的具體位置)
六、重啓全部服務 /etc/init.d/dhcpd restart && /etc/init.d/xinetd restart /etc/init.d/vsftpd restart && /etc/init.d/autofs restart
接下來就能夠
最後的小結
附錄0:本實驗dhcp的配置文件
#cat/etc/dhcp/dhcpd.conf 拷貝如下內容 ddns-update-styleinterim; ignoreclient-updates; allowbooting; allowbootp; subnet10.0.0.0 netmask 255.255.255.0 { #--- default gateway optionrouters 10.0.0.254; optionsubnet-mask 255.255.255.0; optiontime-offset -18000; range dynamic-bootp 10.0.0.3 10.0.0.200; next-server10.0.0.18; filename"pxelinux.0"; hostns { hardwareethernet 00:0C:29:C8:12:84; fixed-address10.0.0.12;} }
附錄1:本實驗default的配置文件
[root@mobai~]# cat /var/lib/tftpboot/pxelinux.cfg/default defaultvesamenu.c32 #prompt1 timeout600 displayboot.msg menubackground splash.jpg menutitle Welcome to CentOS 6.5! menucolor border 0 #ffffffff #00000000 menucolor sel 7 #ffffffff #ff000000 menucolor title 0 #ffffffff #00000000 menucolor tabmsg 0 #ffffffff #00000000 menucolor unsel 0 #ffffffff #00000000 menucolor hotsel 0 #ff000000 #ffffffff menucolor hotkey 7 #ffffffff #ff000000 menucolor scrollbar 0 #ffffffff #00000000 labellinux menu label ^Install or upgrade an existingsystem menu default kernel vmlinuz ks=ftp://10.0.0.18/ks.cfg append initrd=initrd.img labelvesa menu label Install system with ^basic videodriver kernel vmlinuz append initrd=initrd.img xdriver=vesanomodeset labelrescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue labellocal menu label Boot from ^local drive localboot 0xffff labelmemtest86 menu label ^Memory test kernel memtest append -
附錄2:本實驗ks.cfg的配置文件
[root@mobai~]# cat /var/ftp/ks.cfg #platform=x86,AMD64, or Intel EM64T #version=DEVEL #Firewall configuration firewall--disabled #對外開放防火牆程序ssh。 #firewall--service=ssh #Install OS instead of upgrade #選擇安裝方式,ISO鏡像安裝源的具體位置,ISO源能夠是url|http|nfs|ftp install #Use network installation url--url="ftp://10.0.0.18/pub/centos" #Root password 設定root用戶的密碼 rootpw--iscrypted $1$TNHk/xWh$dYdD65ClkqaAWd2BqmrnB0 #Networkinformaton network--bootproto=dhcp --device eth0 --onboot=on #System authorization information auth --useshadow --passalgo=sha512 #Use text mode install 文本|圖形方式安裝 text firstboot--disable #System keyboard keyboardus #System language langen_US #SELinux configuration selinux--disabled #Installation logging level logging--level=info #Reboot after installation從新安裝完系統須要重啓,完成初始化 reboot #System timezone 時區亞洲/上海 timezone Asia/Shanghai #System bootloader configuration 引導記錄安裝在MBR上面 bootloader--location=mbr #Clear the Master Boot Record zerombr #文本模式安裝時須要對初始化磁盤。使用--initlabel可初始化磁盤。 #須要注意的是,若是用此ks.cfg安裝CentOS6.X系列的系統時,須要本身再點一次初始化磁盤空間。 clearpart--initlabel --all --drives=sda #Partition clearing information clearpart--all --initlabel #Disk partitioning information #part/boot --fstype="ext4" --size=200 #part/ --fstype="ext4" --size=1 #partswap --fstype="swap" --size=1 #設置分區,此處將剩餘空間分配給/目錄,具體如何分區請按照我的詳細狀況劃分。 part/boot --fstype=ext4 --size=200 part/ --fstype="ext4" --grow --size=10000 partswap --size=2048 %packages--nobase @core %end
附錄三:DHCP的配置文件
[root@mobai~]# cat /etc/dhcp/dhcpd.conf ddns-update-styleinterim; ignoreclient-updates; allowbooting; allowbootp; subnet10.0.0.0 netmask 255.255.255.0 { #--- default gateway optionrouters 10.0.0.254; optionsubnet-mask 255.255.255.0; optiontime-offset -18000; range dynamic-bootp 10.0.0.3 10.0.0.200; next-server10.0.0.18; filename"pxelinux.0"; hostns { hardwareethernet 00:0C:29:C8:12:84; fixed-address10.0.0.12;} }
附錄四:vsftpd的配置文件
[root@mobai~]# cat /etc/auto.master 前面無用內容省略 +auto.master /var/ftp/pub /etc/auto.ftp [root@mobai~]# cat /etc/auto.ftp centos-fstype=iso9660,ro,loop :/data/CentOS-6.5-x86_64-bin-DVD1.iso ubuntu-ftype=iso9660,ro,loop :/data/ubuntu-14.04.1-server-amd64.iso
追風整理於2014/10/19第6次梳理
參考博文:
Centos 6.5 Kickstart自動化安裝系統 - Hello.C - 博客園
http://www.cnblogs.com/Initart/articles/3731182.html
Linux下NFS的安裝配置 - IT系統運維 - 追求卓越,成功就會出其不意找上門~~
http://blog.zhanxb.com/post/319/
Kickstart+Dhcp+Nfs+Tftp+Pxe 批量Linux服務器安裝平臺 - 吳光科-專一自動化運維 - 51CTO技術博客
http://wgkgood.blog.51cto.com/1192594/530304
Kickstart:實現RHEL的自動安裝_博客專題_51CTO技術博客