DHCP服務 DHCP伺服器主要實現在企業 內部網路 為客戶端 分配IP地址 等網路參數。 在無人值守環境中,當客戶端選擇從網路啟動後,就會通過 發送廣播數據包 的形式 尋找DHCP伺服器 ,從DHCP 獲得IP地址 等參數後才可以通過TFTP共用讀取啟動文件。 (1)安裝DHCP服務操作 (2)修 ...
DHCP服務
DHCP伺服器主要實現在企業內部網路為客戶端分配IP地址等網路參數。
在無人值守環境中,當客戶端選擇從網路啟動後,就會通過發送廣播數據包的形式尋找DHCP伺服器,從DHCP獲得IP地址等參數後才可以通過TFTP共用讀取啟動文件。
(1)安裝DHCP服務操作 yum install -y dhcp
(2)修改配置文件以實現為客戶端分配網路參數
[root@python ~]# vim /etc/dhcp/dhcp.conf
#dhcpd.conf
#
# Sample configuration file for ISC dhcpd
log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 192.168.213.0 netmask 255.255.255.0 {
range 192.168.213.3 192.168.213.254;
option domain-name-servers 192.168.213.163;
option subnet-mask 255.255.255.0;
option routers 192.168.213.2;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.213.163;
filename "pxelinux.0";
}
[root@python ~]# systemctl start dhcpd
[root@python ~]# systemctl enable dhcpd
[root@python ~]# netstat -tunpl|grep 67
udp 0 0 0.0.0.0:67 0.0.0.0:* 5440/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 1506/dnsmasq
TFTP服務
TFTP服務為客戶端提供一種簡單的文件共用,他不具備向FTP那樣豐富的功能,不過由於簡單的設計,TFTP非常適用於傳輸小且簡單的PXE啟動文件。
#安裝TFTP
[root@python ~]# yum install -y tftp-server
#修改配置文件
[root@python ~]# cat /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
}
安裝tftp的動態管理工具
tfpt是被xinetd動態管理的服務,啟動服務,只需要啟動xinetd即可
[root@python ~]# yum install xinetd
#將客戶端所需要的啟動引導文件複製到TFTP伺服器
[root@python ~]# yum install -y syslinux #通過該軟體包獲取引導文件
[root@python ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@python ~]# mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7
[root@python ~]# cp /var/ftp/centos7u7/isolinux/vmlinuz /var/lib/tftpboot/centos7u7/
[root@python ~]# cp /var/ftp/centos7u7/isolinux/vesamenu.c32 /var/lib/tftpboot
[root@python ~]# cp /var/ftp/centos7u7/isolinux/initrd.img /var/lib/tftpboot/centos7u7/
[root@python ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@python ~]# cp /var/ftp/centos7u7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@python ~]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@python pxelinux.cfg]# chmod 644 default
[root@python ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 60
display boot.msg
menu background splash.jpg
menu title CentOS X of Zhao
label centos7 64 <Auto Installation>
menu label Install CentOS Linux ^7 x86_64 <Auto>
kernel centos7u7/vmlinuz
append initrd=centos7u7/initrd.img inst.stage2=ftp://192.168.213.163/centos7u7 inst.repo=ftp://192.168.213.163/centos7u7 inst.ks=ftp://192.168.213.163/centos-7-ks.cfg
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
menu end
#準備圖片
[root@python ~]# cp splash.jpg /var/lib/tftpboot/splash.jpg
[root@python ~]# systemctl start xinetd
[root@python ~]# systemctl enable xinetd
[root@python ~]# ss -nutlp|grep 69
udp UNCONN 0 0 *:69 *:* users:(("xinetd",pid=14264,fd=5))
FTP服務
FTP(file Transfer Protocol)文件傳輸協議,vsftp就是一種利用FTP協議進行數據共用的軟體,vsftp主要特色就是提供一種安全的數據共用服務。
使用vsftp作為Centos系統文件的共用服務平臺,當客戶端從網路從網路啟動正式進入到安裝界面後,還需要讀取Centos光碟中的系統文件,以完成最後的安裝,這些文件就通過vsftp共用給網路用戶。
[root@python ~]# yum install -y vsftpd
[root@python ~]# systemctl start vsftpd
[root@python ~]# systemctl enable vsftpd
自動化安裝實例
初始化系統環境
[root@python ~]# systemctl stop firewalld
[root@python ~]# systemctl disable firewalld
[root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/sysconfig/selinux
[root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/selinux/config
[root@python ~]# setenforce 0
[root@python ~]# cd /var/ftp/
創建安裝目錄結構
[root@python ftp]# mkdir centos6u8
[root@python ftp]# mkdir centos7u7
[root@python ftp]# cd /var/lib/tftpboot/
[root@python tftpboot]# mkdir centos6u8
[root@python tftpboot]# mkdir centos7u7
配置啟動DHCP
配置啟動TFTP
創建自動應答文件
[root@python ~]# yum install system-config-kickstart
[root@python ~]# system-config-kickstart
#檢查有無語法錯誤
[root@python ~]# ksvalidator ks.cfg
[root@python ~]# mv ks.cfg /var/ftp/centos-7-ks.cfg
自動安裝虛擬機測試
踩坑
(1)引導裝載程式選項
# System bootloader configuration
bootloader --location=mbr #在主引導記錄(MBR)中安裝引導裝載程式
# Partition clearing information
clearpart --all
若不安裝引導裝載程式(如下),開機會黑屏,卡在booting from local disk
# System bootloader configuration
bootloader --location=none
內核參數添加 net.ifnames=0 biosdevname=0
,會修改網卡名稱為eth0
# System bootloader configuration
bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr
(2)安裝方法
FTP目錄也可在配置文件centos-7-ks.cfg
中修改
(3)記得掛載鏡像
mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7
若不掛載,會報錯 can't find installer maininage path in .treeinfo
Warning: can't find installer maininage path in .treeinfo
Warning: Downloading 'ftp://192.168.213.163/centos7u7/Live0S/squashfs.img' failed!
Warning anaconda: failed to fetch stage2 from ftp://192.168.213.163/centos7u7
(4)導出ks.cfg文件後,要修改名稱,在最後添加如下內容
%packages
@^minimal
@core
%end
(5)裝機圖片有尺寸(640像素*480像素)要求,不符合要求的可能圖片會顯示失敗
(6)不正確的鏡像可能會使操作系統安裝失敗
測試CentOS-6.10-x86_64-minimal.iso
無法全自動安裝
(7)報錯 failed to fetch kickstat from ftp
可能是selinux沒關或ftp未設置匿名模式
(8)VMware Workstation 與 Device/Credential Guard 不相容
以管理員身份運行Windows Powershell (管理員)(Windows鍵+X),運行命令bcdedit /set hypervisorlaunchtype off
,重啟電腦
此問題應該與windows的系統版本有關,是在windows 10自動更新後出現的