部署無人值守安裝系統
阿新 • • 發佈:2022-03-09
主機名 | 作業系統 | ip地址 |
無人值守系統 | CentOS Linux release 7.9.2009 (Core) | 192.168.71.128 |
客戶端 | 未安裝系統 | - |
1、環境部署
1.1 由於DHCP是用於為客戶端主機分配可用IP地址,而且是客戶端與服務端檔案傳輸的基礎,所以首先配置DHCP服務
yum install dhcp -y #配置DHCP服務 vim /etc/dhcp/dhcp.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # allow booting; allow bootp; #這兩行指定BIOS執行使用PXE啟動 ddns-update-style interim; ignore client-updates; #忽略客戶端更新dns記錄 subnet 192.168.71.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.71.100 192.168.71.200; #可分配的IP地址範圍 option subnet-mask 255.255.255.0; #指定子網掩碼 option domain-name-servers 192.168.71.128; default-lease-time 21600; #設定預設IP地址租用期限 max-lease-time 43200; #設定IP地址最長租用期限 next-server 192.168.71.128; #告訴客戶端TFTP伺服器地址 filename "pxelinux.0"; #告訴客戶端從TFTP根目錄下載pxelinux.0檔案 }
[root@master alertscripts]# systemctl start dhcpd [root@master alertscripts]# lsof -i :67 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dnsmasq 2595 nobody 3u IPv4 35159 0t0 UDP *:bootps dhcpd 8811 dhcpd 7u IPv4 95958 0t0 UDP *:bootps [root@master alertscripts]# netstat -lntup | grep dhcpd udp 0 0 0.0.0.0:67 0.0.0.0:* 8811/dhcpd [root@master alertscripts]# ps -ef | grep 8811 dhcpd 8811 1 0 13:16 ? 00:00:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
在虛擬機器上需要關閉虛擬機器自帶的DHCP服務
1.2 配置HTTP服務
[root@master ~]# yum install httpd -y [root@master ~]# systemctl start httpd [root@master ~]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 1221 root 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2922 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2923 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2924 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2925 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2926 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4224 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4232 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4233 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4274 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4275 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) [root@master ~]# mkdir /var/www/html/centos7 #使用mount命令將光碟映象檔案掛載到對應目錄 [root@master ~]# mount /dev/cdrom /var/www/html/centos7/ [root@master ~]# df -mh 檔案系統 容量 已用 可用 已用% 掛載點 devtmpfs 894M 0 894M 0% /dev tmpfs 910M 17M 893M 2% /dev/shm tmpfs 910M 11M 900M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/mapper/centos-root 15G 4.4G 11G 30% / /dev/sda1 1014M 185M 830M 19% /boot /dev/mapper/centos-var 2.0G 1.1G 977M 52% /var tmpfs 182M 36K 182M 1% /run/user/1000 /dev/sr0 4.4G 4.4G 0 100% /var/www/html/centos7
1.3 配置簡單檔案傳輸協議TFTP
由於tftp協議是被xinetd服務所管理的,所以需要到/etc/xinetd.d/tftp配置檔案中啟動tftp協議
[root@master ~]# yum install tftp-server xinetd -y
[root@master ~]# vim /etc/xinetd.d/tftp
#default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #將yes改為no
per_source = 11
cps = 100 2
flags = IPv4
}
[root@master ~]# systemctl start xinetd
[root@master ~]# lsof -i :69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 9496 root 5u IPv4 108864 0t0 UDP *:tftp
[root@master ~]# netstat -lntup | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 9538/xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 9496/xinetd
1.4 配置syslinux,這是一個引導載入程式主要引導載入核心
initrd.img是一個核心檔案
pxelinux.0是pxe系統的啟動載入程式
isolinux目錄存放的是系統的映象檔案
vmlinuz是啟動過程中引導必要驅動時使用的虛擬核心
[root@master ~]# yum -y install syslinux
[root@master ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@master ~]# cp /var/www/html/centos7/isolinux/* /var/lib/tftpboot/
[root@master ~]# cp /var/www/html/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
1.5 新建pxelinux.cfg目錄,將系統光碟的開機選項選單複製到該目錄中,並命名為default,這個檔案就是開機時的選項選單
[root@master ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@master ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@master pxelinux.cfg]# cp /var/www/html/centos7/isolinux/isolinux.cfg ./default
[root@master pxelinux.cfg]# vim default
default linux #將檔案第一行預設值改為linux,這樣系統在開機時就會預設執行名稱為linux的選項了
#往下查詢label linux選項,修改initrd引數
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=http://192.168.71.128 ks=http://192.168.71.128/ksconfig/ks.cfg quiet
2、配置ks.cfg檔案
root@master pxelinux.cfg]# cd /var/www/html/
[root@master html]# mkdir ksconfig
[root@master html]# cp /root/anaconda-ks.cfg ./ksconfig/ks.cfg
[root@master html]# cd ksconfig
[root@master ksconfig]# chmod 644 ks.cfg
[root@master ksconfig]# vim ks.cfg
#version=DEVEL
# System authorization information
install #告訴安裝程式這是一次全新的安裝
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=http://192.168.71.128/centos7 #將光碟映象安裝方式修改成http協議
text #使用文字模式安裝
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --disabled #禁止系統第一次引導啟動設定代理
firewalld --disabled #禁用防火牆
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn' #鍵盤型別
# System language
lang zh_CN.UTF-8 #指定安裝過程中的預設系統語言
# Network information
network --bootproto=dhcp --device=ens32 --ipv6=auto --activate #網絡卡配置
network --hostname=master #主機名
# Root password
rootpw 123456 #root的密碼
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc #指定系統時區,這裡是上海
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda #指定引導記錄寫的位置
# Partition clearing information
clearpart --all --initlabel #清空所有磁碟內容並初始化磁碟
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024 #分割槽
part pv.157 --fstype="lvmpv" --ondisk=sda --size=19455
volgroup centos --pesize=4096 pv.157
logvol /var --fstype="xfs" --size=2044 --name=var --vgname=centos
logvol swap --fstype="swap" --size=2047 --name=swap --vgname=centos
logvol / --fstype="xfs" --size=15360 --name=root --vgname=centos
reboot #重啟伺服器
%packages #指定安裝軟體包
@^gnome-desktop-environment #@development格式指定安裝那些命令或開發程式
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
還可以可以通過yum軟體倉庫來安裝system-config-kickstart軟體包,這是一款圖形化的kiskstart應答檔案工具可以根據自己的需求生成自定的應答檔案
3、建立客戶端進行測試