RH134之kickstart自动化安装

由于线上化环境不太便于演示kickstart的自动化安装,同时红帽本身的课程对这里讲的比较浅,这里我就以centos8为例,使用vmware环境演示下kickstart的安装。这里是在CentOS 8上实现PXE自动化安装CentOS 7,8 。

1、安装相关软件包并启动

需要安装的软件包dhcp-server tftp-server httpd syslinux-nonlinux(或者syslinux-tftpboot),这里httpd也可以换成vsftp或者nfs。



<br />
[root@centos8 ~]# yum -y install dhcp-server tftp-server httpd syslinux-nonlinux
[root@centos8 ~]# systemctl enable --now httpd tftp dhcpd
注意这里enable的时候会报错,因为上面的服务有些还没给出配置。

2、配置DHCP服务

<br />
[root@centos8 ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@centos8 ~]# vim /etc/dhcp/dhcpd.conf
option domain-name-servers 223.5.5.5,114.114.114.114;
default-lease-time 86400;
max-lease-time 106400;
subnet 192.168.159.0 netmask 255.255.255.0 {
  range 192.168.159.10 192.168.159.20;
  option routers 192.168.159.2;
  next-server 192.168.159.138;
  filename "pxelinux.0";
}
[root@centos8 ~]# systemctl enable --now dhcpd
<br />

3、准备yum源和相关目录

创建相关目录,并把iso文件挂载到相应目录上,如果长期使用,可以把目录里的内容复制到对应的目录里。
[root@centos8 ~]# mkdir -pv /var/www/html/centos{7,8}
[root@centos8 ~]# scandisk
[root@centos8 ~]# lsblk
[root@centos8 ~]# mount /dev/sr1 /var/www/html/centos7
[root@centos8 ~]# mount /dev/sr0 /var/www/html/centos8
<img src="https://www.361way.com/wp-content/uploads/2021/01/kickstart.png" width="500" height="331" title="kickstart" alt="kickstart" align="" />

4、准备kickstart文件

centos8 kickstart文件内容如下:



<br />
[root@centos8 ~]# mkdir /var/www/html/ks/
[root@centos8 ~]# cp anaconda-ks.cfg /var/www/html/ks/centos8.cfg
[root@centos8 ~]# vim /var/www/html/ks/centos8.cfg   //编辑并修改
[root@centos8 ks]# cat centos8.cfg
ignoredisk --only-use=sda
zerombr
text
reboot
clearpart --all --initlabel
selinux --disabled
firewall --disabled
url --url=http://192.168.159.138/centos8/
keyboard --vckeymap=us --xlayouts='us'
lang en_US.UTF-8
network --bootproto=dhcp --device=eth0 --ipv6=auto --activate
bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda
network --hostname=www.361way.com
rootpw --iscrypted 694K7xMjQMHGPN9Na$ifLpeg2bnNX1BzesXrUoQNupaIIKdjuaLKgu5n4yrGHlfNhZWySEePTB8Nn9tTDZcm5mB4MpS5S0Hb7UPqoeF.
firstboot --enable
skipx
services --disabled="chronyd"
timezone Asia/Shanghai --isUtc --nontp
#autopart --type=lvm
#part / --fstype xfs --size 1 --grow --ondisk sda
part / --fstype="xfs" --ondisk=sda --size=102400
part /data --fstype="xfs" --ondisk=sda --size=51200
part swap --fstype="swap" --ondisk=sda --size=2048
part /boot --fstype="ext4" --ondisk=sda --size=1024
%packages
@^minimal-environment
kexec-tools
%end
%addon com_redhat_kdump --enable --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
[root@centos8 ks]#
centos7 ks文件内容如下:



<br />
[root@centos8 ~]# vi /var/www/html/ks/centos7.cfg
[root@centos8 ks]# cat centos7.cfg
install
xconfig ?--startxonboot
keyboard --vckeymap=us --xlayouts='us'
url --url="http://192.168.159.138/centos7/"
lang en_US
text
firstboot --enable
selinux --disabled
skipx
services --disabled="chronyd"
ignoredisk --only-use=sda
firewall --disabled
network --bootproto=dhcp --device=eth0 --ipv6=auto --activate
bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda
network --hostname=www.361way.com
rootpw --iscrypted 694K7xMjQMHGPN9Na$ifLpeg2bnNX1BzesXrUoQNupaIIKdjuaLKgu5n4yrGHlfNhZWySEePTB8Nn9tTDZcm5mB4MpS5S0Hb7UPqoeF.
reboot
timezone Asia/Shanghai --nontp
zerombr
#autopart --type=lvm
clearpart --all --initlabel
part swap --fstype="swap" --ondisk=sda --size=3072
part / --fstype="xfs" --ondisk=sda --size=51200
part /boot --fstype="xfs" --ondisk=sda --size=1024
part /data --fstype="xfs" --ondisk=sda --size=30720
%post
echo "wwww.361way.com" >>/root/install.txt
%end
%packages
@core
%end
修改下权限,保证通过http服务可以正常访问对应的ks文件内容:
[root@centos8 ~]# cd /var/www/html/ks/
[root@centos8 ks]# ls
centos7.cfg  centos8.cfg
[root@centos8 ks]# chmod 644 *

5、准备PXE启动相关文件

<br />
#准备centos7,8各自的内核相关文件
[root@centos8 ~]# mkdir /var/lib/tftpboot/centos{7,8}
[root@centos8 ~]# cp /var/www/html/centos7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7
[root@centos8 ~]# cp /var/www/html/centos8/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos8
[root@centos8 ~]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
#以下三个文件是centos8安装所必须文件,centos6,7则不需要
[root@centos8 ~]# cp /var/www/html/centos8/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/
#生成安装菜单文件
[root@centos8 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@centos8 ~]# cp /var/www/html/centos8/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

6、准备启动菜单文件

<br />
[root@centos8 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title Install CentOS Linux
label linux8
menu label Auto Install CentOS Linux ^8
kernel centos8/vmlinuz
append initrd=centos8/initrd.img ks=http://192.168.159.138/ks/centos8.cfg
  
label linux7
menu label Auto Install CentOS Linux ^7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img ks=http://192.168.159.138/ks/centos7.cfg
  
label manual
menu label ^Manual Install CentOS Linux 8.0
kernel centos8/vmlinuz
append initrd=centos8/initrd.img
inst.repo=http://192.168.159.138/centos8/
label rescue
menu label ^Rescue a CentOS Linux system 8
kernel centos8/vmlinuz
append initrd=centos8/initrd.img
inst.repo=http://192.168.159.138/centos8/ rescue
  
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
[root@centos8 ~]#

7、安装测试

<img src="https://www.361way.com/wp-content/uploads/2021/01/ksinstall-rhel8.png" width="500" height="153" title="ksinstall-rhel8" alt="ksinstall-rhel8" />

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注