Kickstart 全自动安装部署CentOS 8.0 1905

一、准备工作
Centos 8.0(图形化界面) 虚拟机1台,内存最少2G。
软件:Vmware Workstation 15
dhcp、tftp、Apache都通过YUM安装。
dhcp 服务器用来提供IP信息,以及tftp(存放有pxelinux.0引导程序以及内核文件、参数文件)服务器地址。
Apache 服务器用来存放安装源和应答文件。
可以把这几个服务安装在不同的服务器上,也可以装在同一台服务器。
本次实验是将这些服务安装在同一台服务器上。
二、配置DHCP
安装dhcp
yum install dhcp-server -y
rpm -ql dhcp-server |grep example 查找dhcp的实例配置文件


cat /usr/share/doc/dhcp-server/dhcpd.conf.example >/etc/dhcp/dhcpd.conf
把实例配置文件内容写到dhcp的配置文件,因为/etc/dhcp/dhcpd.conf 装好是没有内容的。


vim /etc/dhcp/dhcp.conf
删除注释行,只保留最多的那一个subnet


systemctl start dhcpd
systemctl enable dhcpd
三、安装并配置tftp
yum install tftp tftp-server xinetd -y
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 start tftp
systemctl restart xinetd
systemctl enable tftp
systemctl enable xinetd

四、拷贝引导程序、内核文件到tftp 根目录下。
4.1、引导程序
yum install syslinux -y
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4.2、内核文件
vmlinuz initrd.img 这两个文件在光盘里面有,直接挂载,拷贝。



这个文件夹是用来存放pxe的配置文件的,而且必须是这个名字。


vim /var/lib/tftpboot/pxelinux.cfg/default






保存退出。
4.3、其他文件
引导菜单配置文件: isolinux.cfg
系统自带的两种窗口模块之一:vesamenu.c32
窗口提示信息文件:boot.msg
窗口背景图片:splash.png








其他辅助文件:

五、安装Apache
yum install httpd -y
mkdir -p /var/www/html/dvd
把光盘内容拷贝到这个文件夹下面
cd /var/www/html/dvd
cp -r /mnt/cdrom/* .
mv EFI images isolinux media.repo TRANS.TBL BaseOS/
修改httpd.conf
vim /etc/httpd/conf/httpd.conf






保存退出,启动服务,设置开机启动。
systemctl start httpd
systemctl enable httpd
六、拷贝安装centos8.0 生成的自动应答文件到/var/www/html/ 并测试能否访问。
cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
chmod 644 /var/www/html/ks.cfg

七、修改ks.cfg
vim /var/www/html/ks.cfg
7.1、把原来标准分区,改为LVS分区,按百分比来分配空间。
修改成下面内容:



7.2、添加安装完成后的脚本。(可以忽略)
vim /var/www/html/ks.cfg


ks.cfg全部内容
#version=RHEL8
ignoredisk --only-use=nvme0n1
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
# System bootloader configuration
bootloader --append=" net.ifnames=0 biosdevname=0 crashkernel=auto" --location=mbr
# Network information
network --bootproto=dhcp --device=eth0 --noipv6
# Use network installation
url --url="http://192.168.189.230/dvd/BaseOS/"
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Do not configure the X Window System
skipx
#system timezone
timezone Asia/Shanghai --isUtc
reboot
# Root password
rootpw --iscrypted $6$tZGVeUZuphQGb7zB$nLVFZfBJtDNlJNq911S5gtFhgXtQOBJ/lNAfs4Rrup8eUpYDX/Hjhe9ar5hN3YjcI4pZLjCNsDGLH1v4hi8S/.
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=512
part pv.01 --size=1 --grow
volgroup vg01 pv.01
logvol / --vgname=vg01 --percent=90 --name=lv01
logvol swap --vgname=vg01 --percent=10 --name=lv02
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --enabled="chronyd"
%packages
@^minimal-environment
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
%post
useradd tom
echo tom.com123 | passwd --stdin tom
yum install vim lrzsz wget syslog gcc gcc-c++ network-scripts net-tools -y
GRUPF='/etc/default/grub'
IP=`ifconfig ens160 | awk -F'[: ]+' 'NR==2{print $3}'`
Netm=`ifconfig ens160 | awk -F'[: ]+' 'NR==2{print $5}'`
Gw=`route -n | awk -F'[: ]+' 'NR==3{print $2}'`
DN=`cat /etc/resolv.conf |grep "nameserver"|awk -F' ' 'NR==1{print $2}'`
cp /etc/resolv.conf /etc/resolv.conf.bak
cd /etc/sysconfig/network-scripts/
cat >ifcfg-eth0 <<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=$IP
NETMASK=$Netm
GATEWAY=$Gw
DNS1=$DN
EOF
rm -rf /etc/sysconfig/network-scripts/ifcfg-ens160
systemctl restart network
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="ipv6.disable=1 /g' $GRUPF
grub2-mkconfig -o /boot/grub2/grub.cfg
%end
八、测试,vmware workstation 15 虚拟机,自动安装系统。

需要把虚Vmware 对应的网卡的DHCP关掉。本实验用的是Net8(NAT)














自动重新启动














—————————————END————————————