Kickstart无人值守批量自动安装CentOS系统

1.安装配置dhcp服务

yum install dhcp -y
vim /etc/dhcp/dhcpd.conf

#新增一个子网信息

subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.10 10.0.0.100;          
  option domain-name-servers 223.5.5.5;
  option routers 10.0.0.2;
  option broadcast-address 10.0.0.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 10.0.0.4;
  filename "pxelinux.0";
}

/etc/init.d/dhcpd start 
systemctl enable dhcpd
netstat -lntup |grep 67

特殊参数next-server 和 filename说明

filename:网络引导程序文件名称

next-server: tftp服务所在IP地址


2.安装配置tftp服务

yum install tftp-server -y
vim /etc/xinetd.d/tftp
#主要修改disable,改为no
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
}

service tftp-server start 
systemctl enable tftp-server
netstat -lntup |grep 69

**server_args : /var/lib/tftpboot **该路径为PXE网络引导启动的根路径


3.安装配置http服务以及挂载ISO至HTTP站点目录

yum install httpd -y
systemctl start httpd
systemctl enable httpd
#上传ISO至根目录
[root@server ~]# mkdir -p /var/www/html/pub
[root@server ~]# mount /root/CentOS-7-x86_64-DVD-1804.iso  /var/www/html/pub/
mount: /dev/loop0 is write-protected, mounting read-only
[root@server ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs        36G  7.4G   29G  21% /
devtmpfs              devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                 tmpfs     2.0G   80K  2.0G   1% /dev/shm
tmpfs                 tmpfs     2.0G  8.9M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1             xfs       497M  107M  391M  22% /boot
/dev/loop0            iso9660   4.2G  4.2G     0 100% /var/www/html/pub

4.安装syslinux并且复制所有相关启动文件到网络引导启动的根路径下

yum install syslinux -y
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp -a /var/www/html/pub/isolinux/* /var/lib/tftpboot/

5.创建配置Kickstart自动应答文件

5.1参考其他系统的ks.cfg文件,再加已修改使用

红帽系的系统可以参考根路径下的ks文件,这个文件是安装完系统后,自动生成的记录文件,默认在/root/目录下

#创建Kickstart应答文件存放目录:
 mkdir -p /var/www/html/ks
[root@localhost ~]# cat /root/anaconda-ks.cfg 
#platform=86, AMD64, or Intel EM64T

#version=DEVEL
# System authorization information
auth --useshadow  --passalgo=sha512
# Install OS instead of upgrade
install
# Use network installation
url --url="http://10.0.0.4/pub"
# Use graphical install
graphical
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=None --activate
network  --hostname=localhost.localdomain
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$Bj2DiIyk$NoDoZmT1i2fLwrQrL/VGE0
# SELinux configuration
selinux --disabled
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="xfs" --ondisk=sda --size=512
part pv.92 --asprimary --fstype="lvmpv" --ondisk=sda --size=60927
volgroup vg0 --pesize=4096 pv.92
logvol swap  --fstype="swap" --size=1024 --name=swap --vgname=vg0
logvol /  --fstype="xfs" --grow --size=1024 --name=root --vgname=vg0

%packages
@^minimal
@core
chrony

%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

该reference文件是CentOS7.5 minial机器下生成的,个人感觉磁盘分区那一块还不够完善,若要使用还需要修改

#磁盘逻辑卷分区reference参考如下:
clearpart --all --initlabel
part /boot --fstype=xfs  --ondisk=sda --size=512  --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda  --size=1 --asprimary 
volgroup vg0  --pesize=4096  pv.1
logvol /    --fstype=xfs --grow --name=root --size=1024 --vgname=vg0 
logvol swap --fstype="swap"      --name=swap --size=1024 --vgname=vg0

ondisk : 强制在特定磁盘上创建分区

asprimary : 强制将分区自动分配为主分区,否则分区失败

grow : 告诉逻辑卷增长以填充可用空间,如果没有maxsize最大值限制,可自动增长至最大

5.2利用CentOS提供的一个图形化配置工具system-config-kickstart生成

[root@server ~]# yum install system-config-kickstart -y

启动工具命令:

system-config-kickstart

Kickstart无人值守批量自动安装CentOS系统_第1张图片

Perform installation in text mode(graphical is default) : 默认不勾选安装的是graphical图形界面

Pre-installation script表示安装前的脚本设置,可用参数很少,一般不使用

Post-installation Script 表示安装后的脚本设置,可用于安装完成后的系统初始化设置

因为用kickstart图形化配置工具会有个别细节参数没有涉及到,类似分区等等,所以我这里采用的是第三种方式参考官方文档配置

5.3参考Kickstart官方文档手动配置

Kickstart官方文档链接

最小化安装

[root@pxe ~]# cat /var/www/html/ks/ks.cfg 
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$Bj2DiIyk$NoDoZmT1i2fLwrQrL/VGE0
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://10.0.0.4/pub"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=None
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --enable
# SELinux configuration
selinux --disabled

# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
#part /boot --fstype="xfs" --size=300
#part / --fstype="xfs" --size=20480
#part swap --fstype="swap" --size=2048
part /boot --fstype=xfs  --ondisk=sda --size=512  --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda  --size=1 --asprimary 
volgroup vg0  --pesize=4096  pv.1
logvol /    --fstype=xfs --grow --name=root --size=1024 --vgname=vg0 
logvol swap --fstype="swap"      --name=swap --size=1024 --vgname=vg0

%packages
@^minimal
@core

%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

6.配置引导启动菜单

[root@server ~]# mkdir -p /var/www/html/ks
[root@server ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@server ~]# cp /var/www/html/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[root@server ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 
##下面配置文件选择其中一种模式编写##

####################简化版#########################
default linux
prompt 0
label linux
  kernel vmlinuz
  append initrd=initrd.img ks=http://10.0.0.4/ks/ks.cfg

################支持多选择版#########################
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
#直接模仿label修改增加一个新label即可,注意kernel和initrd引导文件相对于根路径的路径问题
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx

注意:拷贝后的启动引导菜单名称需为default,否则网络引导安装系统时识别不到该菜单

特殊参数说明

  • timeout : 超时时间
  • menu default : 默认菜单
  • kernel : 系统内核
  • initrd : 内核启动时候解开该文件作为根文件系统使用
  • ks : Kickstart自动应答文件路径

7.安装测试

安装过程中…

Kickstart无人值守批量自动安装CentOS系统_第2张图片

Kickstart无人值守批量自动安装CentOS系统_第3张图片

注意:如果是用虚拟机做实验,内存设置必须大于2GB,否则会报/dev/root/ does not found 的错误

Kickstart无人值守批量自动安装CentOS系统_第4张图片


登录系统参考上文给定的分区reference方案查看系统安装后的分区卷组逻辑卷情况

part /boot --fstype=xfs  --ondisk=sda --size=512  --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda  --size=1 --asprimary 
volgroup vg0  --pesize=4096  pv.1
logvol /    --fstype=xfs --grow --name=root --size=1024 --vgname=vg0 
logvol swap --fstype="swap"      --name=swap --size=1024 --vgname=vg0

Kickstart无人值守批量自动安装CentOS系统_第5张图片

你可能感兴趣的:(无人值守,CentOS,自动装机,linux,centos,pxe,系统安装,操作系统)