PXE+kickstart網絡安裝CentOS7.4系統及過程中各種報錯


環境:關閉防火牆、selinux

注意:虛擬機進行網絡安裝的話,7.3以后的系統是需要2G以上的內存

[root@kickstart ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@kickstart ~]# uname -r
3.10.0-693.el7.x86_64
[root@kickstart ~]# getenforce
Disabled
[root@kickstart ~]# systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@kickstart ~]# hostname -I
10.0.0.201 172.16.1.201

博主使用的是虛擬機搭建

此篇博主在搭建中的每一步都列出了會出現的錯誤和解決方式,如果出錯了,不要着急,耐心看。

有錯、排錯是提升的最快方式。

kickstart的原理及組件

首先安裝DHCP

yum install dhcp -y

配置DHCP配置文件

cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {   ## 指定網段   
range 172.16.1.100 172.16.1.199;     ## 地址范圍   
option subnet-mask 255.255.255.0;   ## 分配的掩碼 
default-lease-time 21600;   ## 地址租約   
max-lease-time 43200;       ## 最大租約   
next-server 172.16.1.201;   ## 下一步找什么  
filename "/pxelinux.0";    ## 要下載的文件(請求下載啟動文件)
}
EOF

啟動dhcp查看日志

systemctl start dhcpd     --- 啟動
systemctl status dhcpd    --- 查看狀態
tailf /var/log/messages   --- 查看日志

dhcp相關錯誤須知

 

然后安裝TFTP

yum install tftp-server -y

啟動服務

[root@kickstart ~]# systemctl start tftp.socket 
[root@kickstart ~]# systemctl status tftp.socket 
● tftp.socket - Tftp Server Activation Socket
   Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)
   Active: active (listening) since 二 2017-11-14 10:09:55 CST; 25s ago
   Listen: [::]:69 (Datagram)

11月 14 10:09:55 kickstart systemd[1]: Listening on Tftp Server Activation ...t.
11月 14 10:09:55 kickstart systemd[1]: Starting Tftp Server Activation Socket.
Hint: Some lines were ellipsized, use -l to show in full.

tftp相關錯誤須知

 

報錯是在TFTP服務的根目錄找不到啟動文件pxelinux.0

解決:下載安裝syslinux

安裝syslinux,生成/pxelinux.0文件

[root@kickstart tftpboot]# yum install syslinux -y
[root@kickstart tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@kickstart tftpboot]# ll
總用量 28
-rw-r--r-- 1 root root 26764 11月 14 10:16 pxelinux.0

錯誤須知

 

首先排除最簡單故障原因:selinux是否關閉,防火牆是否關閉

上面的錯誤是因為pxelinux.0這個小系統的配置文件(default)不存在,或者文件名不對

 然后進行鏡像掛載

檢查一下虛擬機是否使用了鏡像

然后進行掛載

[root@kickstart tftpboot]# mkdir -p /var/www/html/CentOS7
[root@kickstart tftpboot]# mount /dev/cdrom /var/www/html/CentOS7/
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@kickstart tftpboot]# df -h
文件系統        容量  已用  可用 已用% 掛載點
/dev/sda3        98G  1.5G   97G    2% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.8M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      1014M  120M  895M   12% /boot
tmpfs            98M     0   98M    0% /run/user/0
/dev/sr0        4.3G  4.3G     0  100% /var/www/html/CentOS7

從鏡像中找到相關的配置文件

[root@kickstart tftpboot]# cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
[root@kickstart tftpboot]# mkdir -p /var/lib/tftpboot/pxelinux.cfg 
[root@kickstart tftpboot]# cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

安裝http

     作用1:提供自動應答文件下載

     作用2:提供安裝系統所需的所有rpm包下載

下載安裝
[root@kickstart tftpboot]# yum install httpd -y
啟動服務
[root@kickstart tftpboot]# systemctl start httpd.service
檢測
[root@kickstart tftpboot]# curl http://172.16.1.201/CentOS7/

編輯default配置文件

[root@kickstart ks_config]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default ks
prompt 0
label ks
  kernel vmlinuz
  append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1

自動安裝(編寫ks文件)

命令段

    install開頭,到%pre

包組段

    以%packages開頭,以%end結束

腳本段

    以%post開頭,以%end結束,在安裝完系統之后執行的相關Linux命令、腳本

    以%pre開頭,以%end結束,在安裝完系統之前執行的相關Linux命令、腳本

[root@kickstart ks_config]# cat CentOS7-ks.cfg 
# Kickstart Configurator for CentOS 7 by yao zhang
install               ## 告知這是一次安裝程序
url --url=http://172.16.1.201/CentOS7/     ## 通過ftp或http從遠程服務器安裝的地址
text                 ## 使用文本模式安裝
lang en_US.UTF-8        ## 設置安裝過程中使用的語言字符集
keyboard us       ## 設置系統鍵盤類型為us
zerombr            ## 清除mbr引導信息
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"        --location=mbr  ## 指定引導記錄被寫入的位置  
                --driveorder=sda     ## 指定在BIOS引導順序中居首的驅動器
--append="crashkernel=auto rhgb quiet"  ## 指定內核參數,要指定多個參數空格分隔,為通過網絡的kickstart安裝以及所安裝的系統配置聯網信息。
network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.202 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate
network  --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 --activate
network  --hostname=Cobbler      ## 以上是靜態配置ip網絡信息的寫法
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7    ## 動態配置ip網絡信息的寫法和配置主機名
timezone --utc Asia/Shanghai        ## 設置時區為亞洲上海
authconfig --enableshadow --passalgo=sha512          ## 系統認證信息,這里要是寫密文密碼需加  設置密碼加密方式為sha512 啟用shadow文件
rootpw  --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/    ## 加密的root密碼
clearpart --all --initlabel          ## 清空分區,清空所有分區
part /boot --fstype xfs --size 1024   ## 為分區設置文件系統類型為xfs,size設置大小
part swap --size 1024    
part / --fstype xfs --size 1 --grow   ## grow把剩余容量都給這個分區
firstboot --disable        ## 協助配置服務器的重要信息
selinux --disabled         ## 關閉selinux
firewall --disabled        ## 關閉防火牆
logging --level=info       ## 設置日志級別
reboot        ## 設置安裝完成后重啟,必須存在

%packages            ## 這一部分是要安裝的一些包
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet 
wget 
vim 
bash-completion
%end

%post            ## 安裝后執行的命令,如果要一鍵化搭建集群,這里可以執行寫好的shell或ansible劇本進行搭建
systemctl disable postfix.service
%end
一大坨ks文件信息

低級錯誤

報錯原因:selinux沒關

解決:關閉selinux

CentOS7.4網絡安裝

 安裝過程的常見報錯

原因:CentOS6和7的default文件中的append這一行不同

解決方法:改append這一行

歡迎大家私信,不足之處請指出。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM