?
无人值守装机流程:
一台没有操作系统的client,首先去找dhcp服务器,dhcp服务器首先会分配给client一个ip,然后dhcp服务器引导client去找tftp服务器,根据pxelinux.0文件找到default配置文件,引导客户端找到initrd和vmlinuz,然后再引导客户端找到安装配置文件ks.cfg,然后从vsftpd服务器上下载安装镜像,vsftpd服务器里存放这ks.cfg配置文件和iso镜像。
# 1、安装配置tftp-server服务
yum install -y tftp-server xinetd
# 安装tftp-server(客户端市tftp,其他场景需要可以安装) 和 xinetd程序
cp /etc/xinetd.d/tftp /etc/xinetd.d/tftp_bak
sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp # 修改tfpt配置文件
firewall-cmd --add-service=tftp # 在防火墙中允许 tftp服务
systemctl start tftp && systemctl enable tftp # 启动tftp服务并设为开机自启
systemctl start xinetd && systemctl enable xinetd # 启动xinetd服务并设为开机自启
# 2、安装配置dhcp服务
yum -y install dhcp # 安装dhcp
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_bak
> /etc/dhcp/dhcpd.conf # 生产环境慎用
cat >> /etc/dhcp/dhcpd.conf << EOF
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.189.0 netmask 255.255.255.0{ # 声明要分配的网段地址
range 192.168.189.130 192.168.189.250; # 设置地址池
next-server 192.168.189.253; # tftp-server的ip
filename "pxelinux.0"; # 指向的是tftp-server的根目录/var/lib/tftpserver
# 还可以使用 option routers 192.168.189.2 设置默认网关地址指向TFTP服务器的IP地址
}
EOF
systemctl start dhcpd && systemctl enable dhcpd # 启动dhcp服务并设为开机自启
<<! 注释可以用dhcpd测试dhcp配置语法正确性
# dhcpd
Internet Systems Consortium DHCP Server 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Wrote 0 leases to leases file.
Listening on LPF/ens33/00:0c:29:fb:83:a2/10.18.45.0/24
Sending on LPF/ens33/00:0c:29:fb:83:a2/10.18.45.0/24
Sending on Socket/fallback/fallback-net
未出现报错!
!
# 3、安装pxe引导程序
yum install -y syslinux
# 4、准备内核及初始化文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 复制pxe引导程序到tftp根目录下
cp /var/ftp/centos7u5/images/pxeboot/vmlinuz /var/lib/tftpboot/
# 复制linux系统的内核文件到tftp根 目录下
cp /var/ftp/centos7u5/images/pxeboot/initrd.img /var/lib/tftpboot/
# 复制初始化镜像文件(linux引导加载模块)到tftp根目录下
# 5、安装ftp服务,准备centos安装源
yum -y install vsftpd
mount /dev/cdrom /mnt/ # 根据实际情况将镜像挂载到挂载点备用
mkdir /var/ftp/centos7u5 # 以centos1804 7.5版本为例
cp /mnt/* /var/ftp/centos7u5 # 将镜像盘里的数据拷贝出来,后续镜像盘就可以拔掉
systemctl start vsftpd && systemctl enable vsftpd
# 将vsftpd服务开启并设置为开机自启动
# 6、配置引导菜单文件(到这里为pxe装机,无人值守装机跳过此步骤)
mkdir /var/lib/tftpboot/pxelinux.cfg
cat >> /var/lib/tftpboot/pxelinux.cfg/default << EOF
default auto # 指定默认入口名称
prompt 1 # 设置是否等待用户选择,“1"表示等待用户控制
label auto # 图形安装(默认)引导入口,label用来定义启动项
kernel vmlinuz # kernel和append用来定义引导参数
append initrd=initrd.img inst.repo=ftp://192.168.189.253/centos7u5
label linux text # text安装(默认)引导入口,label用来定义启动项
kernel vmlinuz
append text initrd=initrd.img inst.repo=ftp://192.168.189.253/centos7u5
label linux rescue # rescue安装(默认)引导入口,label用来定义启动项
kernel vmlinuz
append rescue initrd=initrd.img inst.repo=ftp://192.168.189.253/centos7u5
EOF
# 7、安装kickstart程序
yum install -y system-config-kickstart #安装kickstart程序
system-config-kickstart #调出Kickstart配置程序
# 调不出来需要装 yum -y groupinstall x11
# 调出后进行配置,最后生成kc.cfg文件,将其当到/var/ftp/下
# 同批次服务器完全可以先安装一台或者使用pxe服务器安装完成生成的anaconda-ks.cfg文件
# cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
# 8、配置引导菜单文件(无人值守装机)
cat >> /var/lib/tftpboot/pxelinux.cfg/default << EOF
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://192.168.189.253/centos7u5 ks=ftp://192.168.189.253/ks.cfg # 添加ks引导参数以指定ks.cfg应答文件的URL路径
EOF
附ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$N.SzTeHG$VlnIngR3qeSScuY31C3s3.
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://192.168.189.253/centos7u5"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=512
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1
%packages
@core
@base
bash-completion
vim-enhanced
wget
net-tools
lsof
%end
%post
mkdir /etc/yum.repos.d/default
mv /etc/yum.repos.d/C* /etc/yum.repos.d/default
cat << EOF > /etc/yum.repos.d/centos.repo
[centos]
name=centos
baseurl=ftp://192.168.189.253/centos7u5
enabled=1
gpgcheck=0
EOF
%end
|