一、前言
在生產環境中,我們經常遇到需要部署部署多臺服務器。如果我們每部署一臺服務器都要拿著系統盤到機房部署,守在服務器面前,那么我們的效率是十分低下的。況且有時候機房并不在我們身邊。那么我們可以通過讓機房值班人員為每臺服務器配置好遠程管理卡,運維人員通過遠程管理卡,遠程登入服務器進行操作。
二、pxe原理
pxe原理是通過服務器上網卡中支持的pxe啟動,通過廣播的方式獲取ip地址與下一個服務器的ip地址,pxe客戶端在tftp服務器上下載pxelinux.0文件,pxe客戶端根據pxelinux.0的執行結果,通過tftp服務器加載kernel及ramdisk文件,從而引導系統。具體原理可查考下圖
三、開始部署pxe服務器
3.1 部署dhcp服務
3.1.1 安裝dhcp服務器并關閉selinux及iptables
[root@localhost ~]# yum install dhcp –y [root@localhost ~]# setenforce 0 #設置selinux為permissive模式 [root@localhost ~]# getenforce Permissive [root@localhost ~]# service iptables stop #關閉防火墻
3.1.2 配置dhcp服務器
[root@localhost ~]# mv /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf subnet 192.168.19.0 netmask 255.255.255.0 { range 192.168.19.100 192.168.19.200; #dhcp地址池 filename "pxelinux.0" #下一個尋找的文件 server-name "192.168.19.136" #下一個尋找的服務器地址 }
3.1.3設置開機啟動
[root@localhost ~]# chkconfig dhcpd on [root@localhost ~]# chkconfig --list dhcpd dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@localhost ~]# service dhcpd start
3.2 配置tftp服務器
[root@localhost ~]# yum install -y tftp-server service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #設置tftp-server開機自動啟動 per_source = 11 cps = 100 2 flags = IPv4 }
3.3配置pxe工作環境
3.3.1安裝syslinux
[root@localhost ~]# yum install -y syslinux [root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
3.3.2 安裝httpd
[root@localhost tftpboot]# yum install -y httpd [root@localhost tftpboot]# chkconfig httpd on [root@localhost tftpboot]# service httpd start
3.3.3提供kernel,ramdisk等文件
[root@localhost tftpboot]# mount /dev/sr0 /mnt/cdrom [root@localhost tftpboot]# mount --bind /mnt/cdrom /var/www/html/centos/x86_64 [root@localhost tftpboot]# cd /mnt/cdrom/images/pxeboot/ [root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ [root@localhost isolinux]# cd /mnt/cdrom/isolinux/ [root@localhost isolinux]# cp vesamenu.c32 boot.msg splash.jpg /var/lib/tftpboot/ [root@localhost isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
3.3.4提供kickstart文件
[root@localhost tftpboot]# yum install -y system-config-kickstart [root@localhost tftpboot]# cp /root/ks.cfg /var/www/html/ #kickstart文件部分示例 # Firewall configuration firewall --enabled --service=ssh # Install OS instead of upgrade install # Use network installation # Firewall configuration firewall --enabled --service=ssh # Install OS instead of upgrade install # Use network installation url --url="http://192.168.19.136/centos/x86_64" #指定安裝源 # Root password rootpw --plaintext centos #設置root密碼 # System authorization information auth --useshadow --passalgo=md5 # Use text mode install text #文本模式安裝 firstboot --disable # System keyboard keyboard us #鍵盤類型 # System language lang en_US #語言 # SELinux configuration selinux --enforcing #selinux模式 # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on #連網方式 # System bootloader configuration bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=200 #創建/boot分區 part / --fstype="ext4" --grow --size=1 #創建/ 分區
四、測試
關閉vmware的dhcp功能
從pxe啟動后,設置ks文件
安裝
參考文獻:http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html
原創文章,作者:成吉思汗,如若轉載,請注明出處:http://www.www58058.com/8000
有下篇嗎,過程挺詳細,只是步驟好順利的樣子,我們公司原來有同學在折騰這個過程沒有預期順利,總是卡在ip獲取上
@stanley:無下篇,自己電腦上做的實驗,把虛擬機的dhcp功能關閉,只要服務器上dhcp配置好了,就能獲取到ip。其實也沒文章寫的順利,主要卡在kickstart文件上。