PXE+kickstart無人值守裝機

PXE(Pre-boot Execution Environment)是由Intel設計的協議,它能夠使計算機經過網絡啓動。協議分爲client和server兩端,PXE client在網卡的ROM中,當計算機引導時,BIOS把PXE client調入內存執行,並顯示出命令菜單,經用戶選擇後,PXE client將放置在遠端的操做系統經過網絡下載到本地運行。  


系統環境初始化:

sed -i 's/^SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config 
setenforce 0
iptables -F
systemctl stop firewalld
systemctl disable firewalld


一、配置DHCP服務程序
DHCP服務程序用於爲客戶端主機分配可用的IP地址,並且這是服務器與客戶端主機進行文件傳輸的基礎,所以咱們先行配置DHCP服務程序。

yum -y install dhcp


cat /usr/share/doc/dhcp*/dhcpd.conf.example
vim /etc/dhcp/dhcpd.conf

allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 172.16.70.0 netmask 255.255.255.0 {
        option subnet-mask      255.255.255.0;
        option domain-name-servers  172.16.70.250;
        range dynamic-bootp 172.16.70.100 172.16.70.200;
        default-lease-time      21600;
        max-lease-time          43200;
        next-server             172.16.70.250;
        filename                "pxelinux.0";
}


systemctl start dhcpd
systemctl enable dhcpd


二、配置TFTP服務程序
vsftpd服務與TFTP服務。vsftpd是一款功能豐富的文件傳輸服務程序,容許用戶以匿名開放模式、本地用戶模式、虛擬用戶模式來進行訪問認證。可是,當前的客戶端主機尚未安裝操做系統,該如何進行登陸認證呢?而TFTP做爲一種基於UDP協議的簡單文件傳輸協議,不須要進行用戶認證便可獲取到所需的文件資源。所以接下來配置TFTP服務程序,爲客戶端主機提供引導及驅動文件。當客戶端主機有了基本的驅動程序以後,再經過vsftpd服務程序將完整的光盤鏡像文件傳輸過去。



 yum -y install tftp-server  xinetd

 vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4

}


systemctl restart xinetd
systemctl enable xinetd




三、配置SYSLinux服務程序
SYSLinux是一個用於提供引導加載的服務程序。與其說SYSLinux是一個服務程序,不如說更須要裏面的引導文件,在安裝好SYSLinux服務程序軟件包後,/usr/share/syslinux目錄中會出現不少引導文件。


yum -y install syslinux
mount /dev/cdrom /mnt

cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /mnt/images/pxeboot/initrd.img .
cp /mnt/images/pxeboot/vmlinuz .
cp /mnt/isolinux/vesamenu.c32 .
cp /mnt/isolinux/boot.msg .


mkdir pxelinux.cfg
cd pxelinux.cfg/
cp /mnt/isolinux/isolinux.cfg default

vim  /var/lib/tftpboot/pxelinux.cfg/default 
  1 #default vesamenu.c32
  2 default linux


 65 #  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
 66   append initrd=initrd.img inst.stage2=ftp://172.16.70.250 ks=ftp://172.16.70.250/pub/ks.cfg quiet





四、配置VSFtpd服務程序
在咱們這套無人值守安裝系統的服務中,光盤鏡像是經過FTP協議傳輸的,所以勢必要用到vsftpd服務程序。固然,也能夠使用httpd服務程序來提供Web網站訪問的方式,只要能確保將光盤鏡像順利傳輸給客戶端主機便可。若是打算使用Web網站服務來提供光盤鏡像,必定記得將上面配置文件中的光盤鏡像獲取網址和Kickstart應答文件獲取網址修改一下。


#使用某臺默認的ks文件
yum -y install vsftpd
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
cd /var/ftp/pub/

vim /var/ftp/pub/ks.cfg 

  4 # Use CDROM installation media
  5 cdrom
  6 url --url=ftp://172.16.70.250
  7 # Use graphical install
  8 #graphical
  9 text
 18 network  --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --no-activate
 31 #clearpart --none --initlabel
 32 clearpart --all --initlabel
 50 
 51 reboot
 52 

[root@kickstart]# ll /var/ftp/pub/ks.cfg
總用量 4
-rw-------. 1 root root 997 1月  20 14:10 ks.cfg

chmod +r /var/ftp/pub/ks.cfg

systemctl restart vsftpd
systemctl enable vsftpd


#自定義ks 文件
配置kickstart安裝文件
能夠使用某臺CentOS 7(注意不是6)的/root/anaconda-ks.cfg做爲模板手動修改,也能夠使用system-config-kickstart命令配置ks.cfg文件:

在某臺CentOS 7(注意不是6)系統上安裝所需包:
# yum -y install system-config-kickstart
在某臺CentOS 7(注意不是6)系統上運行圖形界面進行設置:
#system-config-kickstart


驗證ks文件的正確性(可選):
在CentOS 7系統安裝pykickstart包:
# yum -y install pykickstart
在CentOS 7系統驗證上傳到此係統的ks文件:
ksvalidator ks.cfg
若是沒任何輸出,表示沒問題。
在CentOS 7系統查看CentOS 6與7的ks版本區別:
ksverdiff -f RHEL6 -to RHEL7


#########新裝機器操做############################################################
直接設定在同網段開機便可



參考:
http://hmli.ustc.edu.cn/doc/linux/centos-autoinstall.htm
https://www.linuxprobe.com/chapter-19.html



PS: ks文件詳解

#platform=x86, AMD64, 或 Intel EM64T
#version=CentOS7
# Install OS instead of upgrade #全新安裝而不是升級
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $改爲這樣不會再給我發泄密警告了吧?10 #採用加密記錄
#rootpw --plaintext 12你要認爲我泄漏密碼,我對你智商也沒轍456 #採用明文記錄
# System language
lang en_US
# Firewall configuration #屏蔽防火牆
firewall --disabled
# System authorization information #設定NIS信息
auth  --useshadow  --passalgo=sha512 --enablenis --nisdomain=mydomain.org --nisserver=192.168.100.254
# Use text mode install #安裝方式,文本界面,圖形的話graphy
text
# SELinux configuration #關閉SELinux
selinux --disabled
# Do not configure the X Window System #不配置X圖形界面
skipx

# Use NFS installation media #設定安裝方式
nfs --server=192.168.100.254 --dir=/centos
# Use http installation source
#url --url=http://192.168.100.254/centos/7/
# Network information #採用DHCP獲取IP
network  --bootproto=dhcp
# Reboot after installation #安裝後自動重啓,若是BIOS中設置從PXE首先啓動,那麼會重複安裝,請注意,安裝後應設置爲從先硬盤啓動
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information #清除原有分區
clearpart --all
# Disk partitioning information
part / --fstype="xfs" --size=10000
part /boot --fstype="xfs" --size=200
#part /boot/efi --fstype=efi --size=200 #UEFI引導安裝時須要,傳統LEGACY引導時可屏蔽此選項
part swap --fstype="swap" --size=8000
part /tmp --fstype="xfs" --grow --size=1

%packages #設定所須要的軟件包,按須要調整
@base #@表示一組軟件包
@network-server
@performance
@system-admin-tools
sdparm
tree
tuned
tuned-utils
ypbind
nfs-utils
vim-enhanced
#-表示從默認軟件包的須要去除的軟件包
-lvm2
-nano
-pcmciautils
-plymouth
-rfkill
-rsync
-system-config-firewall-tui
-system-config-network-tui
-unzip
-vconfig
-wireless-tools
%end #%packages結尾

%pre #預案裝腳本,非必須
date
%end #%pre結尾

%post #安裝後腳本,非必須
cat >>/root/.bashrc <>/etc/fstab
%end #%post結尾
相關文章
相關標籤/搜索