一、基本環境 操作系統:CentOS7.4 內核版本:3.10.0-862.11.6.el7.x86_64 二、組件部署 yum安裝tftp tftpd-server xinetd http dhcp. 安裝完成後進行簡單必要的配置: 1. tftp守護進程xinetd配置 2. dhcp配置 vi ...
一、基本環境 操作系統:CentOS7.4 內核版本:3.10.0-862.11.6.el7.x86_64
二、組件部署 yum安裝tftp tftpd-server xinetd http dhcp.
1 yum -y install tftp tftpd-server xinetd http dhcp
安裝完成後進行簡單必要的配置:
1. tftp守護進程xinetd配置
1 vim /etc/xinetd.d/tftp 2 service tftp { 3 ... 4 disable = yes #這裡將“yes"改成“no” 5 ... 6 }
2. dhcp配置
vim /etc/dhcp/dhcpd.conf (dhcpd.conf這個文件沒有的話,可以用/usr/share/doc/dhcp-4.2.5/下的模版文件複製一個,再根據自己的實際網路環境,修改其中的IP.
1 subnet 172.16.12.0 netmask 255.255.255.0 { #網路環境,tftp http伺服器所在的網段,這裡是我的主機網卡. 2 range 172.16.12.140 172.16.12.200; 3 option domain-name-servers 172.16.12.1; 4 option domain-name "dhcp.example.org"; #這個功能變數名稱可以去掉 5 option routers 172.16.12.1; 6 option broadcast-address 172.16.12.255; 7 default-lease-time 600; 8 max-lease-time 7200; 9 next-server 172.16.12.142; #指定tftp http伺服器 10 filename "pxelinux.0"; #指定引導文件 11 }
分別啟動 tftp tftpd-server xinetd http dhcp .
關閉防火牆、selinux.
按照系統加電、BIOS引導、內核引導、安裝簡要說明下:
1. dhcp PXE開機引導下,dhcp負責分配給客戶機一個IP地址,這樣客戶機就有了門牌號碼,可以跟網路中的其它主機通信了.
2. tftp 在系統引導階段向客戶機傳送引導文件、內核鏡像等文件(這時候內核還沒在客戶機中運行,無法進行HTTP通信).
3. http 內核完全接管客戶機,通過HTTP傳送IOS,開始安裝.
三、準備第一階段安裝文件
首先將centos7.iso的安裝鏡像掛在到http根目錄下,後續將會用到.
1 mount /dev/sr0 /var/www/html/os/
第一階段文件放在tftpboot目錄下,
cd /var/lib/tftpboot/
如上圖,initrd.img pxelinux.cfg/default vesamenu.c32 vmlinuz 都直接複製/centos7.iso/isolinux/鏡像目錄中相應的文件就行了.其中/pxelinux.cfg/default文件複製/cenos7.iso/isolinux/isolinux.cfg重命名為default.
1 cp /var/www/html/os/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 2 vim /var/lib/tftpboot/pxelinux.cfg/default #修改初始安裝界面的菜單
default vesamenu.c32 #預設菜單文件 3 timeout 10 #初始安裝菜單界面停留時間,預設是600,我為了省時,改成了10 4 5 menu title CentOS 7 #菜單標題,最好不要改 6 7 label auto 8 menu label ^Auto Install CentOS 7 9 kernel vmlinuz 10 11 12 label manual 13 menu label Test this ^Manual install CentOS 7 14 menu default 15 kernel vmlinuz 16 append initrd=initrd.img inst.repo=http://172.16.12.142:80/os #告訴安裝程式,安裝鏡像在哪裡 17 append initrd=initrd.img ks=http://172.16.12.142:80/ks.cfg #這裡必須更改成http伺服器中ks.cfg文件的路徑
18 19 label local 20 menu label Boot from ^local drive 21 localboot 0xffff
pxelinux.0文件在/usr/share/syslinux/pxelinux.0中找到,複製過來就好了.如果/usr/share/下沒有syslinux/目錄,說明系統沒有安裝syslinux,yum安裝一下就有了.
1 yum -y install syslinux
2 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
到這裡第一階段文件就準備好了.
四、準備第二階段安裝配置文件,即ks.cfg.
ks.cfg可以用系統自帶的kickstart工具生成,但是這個工具不完善,生成的.cfg文件,在安裝程式界面無法實現自動應答.這裡紅帽官方教材推薦的是複製系統自帶的root用戶目錄下的anacond-ks.cfg.
cp /root/anacond-ks.cfg /var/www/html/ks-config/ks.cfg #這裡用的centos7自帶的anacond-ks.cfg做模版 vim /var/www/html/ks-config/ks.cfg #version=DEVEL auth --enableshadow --passalgo=sha512 url --url=http://172.16.12.142/os/ #安裝介質位置 Text #使用文本模式安裝界面 firstboot --disable ignoredisk --only-use=sda keyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 network --bootproto=dhcp --device=eth0 --activate #網路配置,啟用dhcp,激活自動連接 rootpw --iscrypted $6$InOp5eeyMRNQ.XLN$oFLGFfSpMx9CwIQoYsb.gxfpNJfIRGn/mNtI7O.XO6BDCafdT2TImZw0rvSDkaH8Be/XETEWLrQyjsKMTMazJ1 services --disable="chronyd" timezone America/New_York --isUtc xconfig --startxonboot bootloader --location=mbr --boot-drive=sda autopart --type=lvm zerombr #清除磁碟已有的MBR clearpart --all --initlabel --drives=sda part / --fstype="xfs" --ondisk=sda --size=5120 %packages36 @base @core50 @networkmanager-submodules52 @system-admin-tools54 chrony %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --emptyok %end %post echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot %end
ks.cfg文件可以實際需求更改. 但是有幾項是必填的 (1)語言 (2)網路 (3)時區 (4)輸入法 (5)ISO源地址 (6)安裝包(預設最小模式) (7)分區 (8)root用戶密碼. 這些都是系統安裝過程中要求手動輸入的, 所以要實現無人干預全程自動化安裝, 這些項目必須事先為安裝程式列出.
到這裡整個kickstart 所需的文件和服務都準備好了, 開始kickstart吧!