安装前准备:
1、关闭防火墙和SELINUX
[root@centos7 ~]# systemctl status firewalld
● 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@centos7 ~]# getenforce
Disabled
2、配置DHCP服务器静态IP
[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
#BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e1eb6903-f46b-4490-bb2b-74b0021957f1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.147.129 //静态地址
NETMASK=255.255.255.0
一、安装软件包(httpd tftp-server dhcp syslinux system-config-kickstart)
[root@centos7 ~]# yum install httpd tftp-server dhcp syslinux system-config-kickstart -y
二、配置文件共享服务
[root@centos7 html]# systemctl start httpd
[root@centos7 html]# systemctl enable httpd
[root@centos7 html]# mkdir -p /var/www/html/centos/7
[root@centos7 html]# mkdir /var/www/html/ksdir
[root@centos7 html]# ls
centos index.html ksdir
挂载光盘,最好是写进/etc/fstab配置文件中
[root@centos7 html]# mount /dev/sr0 /var/www/html/centos/7
[root@centos7 html]# cd centos/7
[root@centos7 7]# ls
CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL

三、准备kickstart文件,可以根据anaconda-ks.cfg文件进行修改,也可使用创建工具:system-config-kickstart生成新的配置。配置文件的放置目录为/var/www/html/ksdir,同时要注意kickstart文件的权限这里设为644。
[root@centos7 ksdir]# ls /var/www/html/ksdir/
ks7_desktop.cfg ks7_mini.cfg
桌面化安装的kickstart文件ks7_desktop.cfg
[root@centos7 ksdir]# cat ks7_desktop.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url="http://192.168.147.129/centos/7"
# Use graphical install
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
reboot
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
network --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --activate
network --hostname=centos7.cwj.com
# Root password
rootpw --iscrypted $6$Gc0Xp64gwbnbXaz/$oto/r0KN.uARfEvqsKu3Vax0NAGZGISe.fugaFHGtsqt5RQsLTWA/vYf/ANUbKm6zwJ3/8GYWVYTq9WPmbPhz1
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
user --name=cwj --password=$6$q2Mexpvnzn0BJzu8$a3iWuNCurYMqPpmfU5aXYsTVso98J2asMdZJe9Pks6iKn0nV9NfLfMVpUYd8HaAOtE7OAf8W7re8Ebr2aXGNh0 --iscrypted --gecos="cwj"
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
#autopart --type=lvm
# Partition clearing information
clearpart --all --initlabel
zerombr
#Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part / --fstype="xfs" --ondisk=sda --size=51200
part /data --fstype="xfs" --ondisk=sda --size=20000
part swap --fstype="swap" --ondisk=sda --size=2048
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@dial-up
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@internet-browser
@multimedia
@x11
kexec-tools
autofs
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%post
systemctl enable autofs
systemctl disable initial-setup.service
systemctl set-default multi-user.terget
mkdir /etc/yum.repos.d/yum.bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum.bak
cat >/etc/yum.repos.d/base.repo<<EOF
[base]
name=base
baseurl=file:///misc/cd
gpgcheck=0
EOF

四、配置tftp服务,tftp服务使用UDP69端口。
[root@centos7 ~]# systemctl start tftp.service
[root@centos7 ~]# systemctl enable tftp.service
[root@centos7 ~]# systemctl status tftp.service
● tftp.service - Tftp Server
Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
Active: active (running) since 四 2019-10-31 17:13:46 CST; 6s ago
Docs: man:in.tftpd
Main PID: 8648 (in.tftpd)
CGroup: /system.slice/tftp.service
└─8648 /usr/sbin/in.tftpd -s /var/lib/tftpboot
[root@centos7 ~]# ss -nl | grep 69
udp UNCONN 0 0 :::69 :::*
五、配置DHCP服务
[root@centos7 ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "cwj.org";
option domain-name-servers 114.114.114.114, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
#必须有一个子网与DHCP服务器的IP在同一个网段,否则无法启动DHCP服务。
subnet 192.168.147.0 netmask 255.255.255.0{
range 192.168.147.10 192.168.147.100; #分配的IP范围
option routers 192.168.147.1; #路由的IP地址
filename "pxelinux.0";
next-server 192.168.147.129; #tftp服务器的地址
}
[root@centos7 ~]# systemctl enable dhcpd
[root@centos7 ~]# systemctl start dhcpd
六、准备相关文件
创建pxelinux.cfg文件夹并复制引导文件pxelinux.0和启动背景图menu.c32,pxelinux.0和menu.c32文件由syslinux软件包提供。
[root@centos7 tftpboot]# mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@centos7 tftpboot]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
复制内核文件
[root@centos7 ~]# cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
复制安装启动菜单
[root@centos7 tftpboot]# cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
文件列表如下:
[root@centos7 tftpboot]# tree
.
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
七、准备启动菜单
[root@centos7 tftpboot]# vim pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE install CentOS 6 and CentOS 7
label CentOS 7 Desktop
menu label Install ^Desktop CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.147.129/ksdir/ks7_desktop.cfg
label CentOS 7 mini
menu label Install ^Mini CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.147.129/ksdir/ks7_mini.cfg
label local
menu default
menu label ^Boot from local drive
localboot 0xffff
menu end
八、安装

安装过程


本文详细介绍了如何在CentOS环境中通过kickstart文件实现自动化安装,包括关闭防火墙、配置DHCP服务器静态IP、安装必要软件包、配置文件共享服务、准备kickstart文件、配置tftp与DHCP服务等步骤。
648

被折叠的 条评论
为什么被折叠?



