以下配置流程均在CentOS 6.7實現
實驗環境:
PXE + httpd + dhcp + tftp-server + kickstart
實現環境:
PXE+httpd + dhcp + tftp-server + kickstart
簡單介紹相關概念:
PXE:是一種安裝方式,支持通過網絡引導,訪問服務器的文件來安裝系統,需要網卡支持
http:文件服務器,存放系統ISO文件
dhcp:實現客戶機地址分配
tftp:存放PXE相關的文件的服務器
kickstart:是安裝程序anaconda的安裝配置文件
注意:若沒有PXE相關文件,如pxelinux.0,則需要安裝syslinux
1.配置文件服務器,http文件服務器
安裝httpd並設置開機啓動
[root@johnson_linux ~]# yum install httpd ====================================================================================== 軟件包 架構 版本 倉庫 大小 ======================================================================================= 正在安裝: httpd x86_64 2.2.15-47.el6.centos.4 updates 831 k 爲依賴而安裝: apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k httpd-tools x86_64 2.2.15-47.el6.centos.4 updates 77 k #設置開機啓動 [root@johnson_linux ~]# chkconfig httpd on
掛載光盤並複製光盤的所有內容至/var/www/html目錄下
我這邊掛載點是/madia/dvd1,掛載點可自行創建目錄
#掛載光盤 root@johnson_linux ~]# mount /dev/cdrom /media/dvd1 #看一下掛在後光盤的內容 [root@johnson_linux ~]# ls /media/dvd1 CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6 EFI Packages RPM-GPG-KEY-CentOS-Security-6 EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6 GPL repodata TRANS.TBL images RPM-GPG-KEY-CentOS-6 #cp光盤內容至/var/www/html目錄 [root@johnson_linux ~]# cp -r /media/dvd1 /var/www/html #我把文件夾改名爲centos6.7方便辨認 [root@johnson_linux ~]# mv /var/www/html/dvd1 /var/www/html/centos6.7
2.配置tftp服務器:
安裝tftp-server並設置開機啓動
[root@johnson_linux ~]# yum install tftp-server ===================================================================================== Package Arch Version ===================================================================================== Installing: tftp-server x86_64 0.49-7.el6 Installing for dependencies: xinetd x86_64 2:2.3.14-39.el6_4 Transaction Summary =====================================================================================
創建tftpboot文件夾
[root@johnson_linux ~]# mkdir /tftpboot
將以下這些文件複製到tftpboot目錄下
boot.msg initrd.img pxelinux.0 vmlinuz isolinux.cfg
#複製boot.msg [root@johnson_linux ~]# cp /var/www/html/centos6.7/isolinux/boot.msg /tftpboot #複製initrd.img [root@johnson_linux ~]# ls /var/www/html/centos6.7/images/pxeboot/initrd.img /tftpboot #複製 vmlinuz [root@johnson_linux ~]# cp /var/www/html/centos6.7/images/pxeboot/vmlinuz /tftpboot #複製pxelinux.0 [root@johnson_linux ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot #創建pxelinux.cfg目錄 [root@johnson_linux ~]# mkdir /tftpboot/pxelinux.cfg #複製isolinux.cfg文件到/tftpboot目錄並改名爲default [root@johnson_linux ~]# cp /var/www/html/centos6.7/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
配置default文件
default linux # 修改爲下面的label名字 #prompt 1 timeout 1 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.7! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label linux # 此處label名對應上面的default menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img ks=172.18.0.144 # 添加ks文件的地址
配置/etc/xinetd.d/tftp
修改以下兩處即可
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot ------#修改爲自己創建的目錄路徑 disable = no ------#此處的yes改爲no per_source = 11 cps = 100 2 flags = IPv4 }
最後重啓tftp服務
[root@localhost ~]# service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] #設置開機啓動 [root@localhost ~]# chkconfig xinetd on
3.配置dhcp服務器
安裝dhcp並設置開機啓動
[root@localhost ~]# yum inatall dhcp ===================================================================================== Package Arch Version Repository Size ===================================================================================== Installing: dhcp x86_64 12:4.1.1-49.P1.el6.centos base 822 k Transaction Summary ====================================================================================
編輯/etc/dhcp/dhcpd.conf
# dhcpd.conf ddns-update-style none; next-server 172.18.0.144; #tftp地址 filename "pxelinux.0"; # PXE文件名 subnet 172.18.0.0 netmask 255.255.0.0 { # 設定子網 range 172.18.0.0 172.18.200.200; # 設定可分配的子網範圍 option routers 172.18.0.1; # 配置路由網關 }
4.配置kickstart文件
安裝system-config-kickstart.noarch
[root@johnson_linux ~]# yum install system-config-kickstart.noarch
在圖形終端打開命令行窗口鍵入命令system-config-kickstart啓動配置窗口
引導選項配置
分區配置
網絡配置
加密配置
防火牆配置
顯示配置
安裝包選擇
安裝腳本配置
保存退出,文件名ks.cfg
最後將生成的ks.cfg文件放在/var/www/html目錄下即可
至此自動化安裝環境配置完畢
使用虛擬器實驗一定要將網絡設置爲橋接,否則服務無法連接dhcp服務器
關於ks文件的配置,想嘗試去自己去編寫,可以查考anaconda生成的anaconda-ks.cfg文件,就在root的家目錄下
貼上我的ks文件:(以下ks文件以馬哥的爲範本做了簡要的修改)
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall –disabled
# Install OS instead of upgrade
install
# Use network installation
url –url=”http://172.18.17.2/centos6.7″
# Root password
rootpw –iscrypted $1$Ga8vc8m.$fmBL3Rail7oAeErVtJM/9/
# System authorization information
auth –useshadow –passalgo=sha512
# Use text mode install
text
firstboot –disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux –disabled
# 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=”quiet” –location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart –all
# Disk partitioning information
part /boot –fstype=”ext4″ –size=200
part pv.008 –size=61440
volgroup vg0 –pesize=8192 pv.008
logvol / –fstype=ext4 –name=root –vgname=vg0 –size=20480
logvol swap –name=swap –vgname=vg0 –size=2048
logvol /usr –fstype=ext4 –name=usr –vgname=vg0 –size=10240
logvol /var –fstype=ext4 –name=var –vgname=vg0 –size=20480
%post
# set hostname
sed -i ‘s@HOSTNAME=.*@HOSTNAME=johnson_linux.server@’ /etc/sysconfig/network
# set hosts
echo “172.18.17.2 johnson_server” >> /etc/hosts
%end
%packages
@base
%end
總結:ks文件配置比較重要,也是比較有技術含量的一環,網絡環境配置可以按部就班,但是ks文件卻需要自己去定製,能讀懂ks文件是關鍵,用system-config-kickstart來生成的ks文件也有不足之處,比如分區,就不能使用LVM,需要用到邏輯卷需要自己手動去編寫ks文件