kickstart自动化安装

preboot execute environment预启动执行环境--intel开发的技术,计算机可以通过pxe协议从网络引导启动。

工作模式为客户端/服务器端的c/s模式

客户端从远端服务器下载镜像,并支持通过网络启动操作系统(启动过程,客户端要求服务器端分配ip地址,再用TFTP或MTFTP协议下载一个启动软件包到客户端内存中执行)

为了节省时间和成本,使用kickstart+PXE自动化安装部署来解决数百台服务器的系统,版本一致。

架构:DHCP+NFS+TFTP+PXE+kickstart

需要安装的服务:dhcp,tftp,nfs,kickstart(一个配置文件)等

前提:客户端开启pxe功能

#服务器端:

1.挂载镜像

2.DHCP安装:

yum install dhcp* -y

配置dhcp:vi /etc/dhcp/dhcpd.conf

#有一个dhcpd.conf.sample的文件可以参考

 

3.TFTP安装:

yum install tftp* -y

配置tftp服务:vi /etc/xinetd.d/tftp

disable=yes改为no

#tftp基于xinetd.d的服务启动

4.配置TFTPBOOT+PXE配置

要实现远程安装系统,需要在TFTPBOOT目录指定相关PXE内核模块及相关参数。

#系统是5,默认tftpboot目录自动创建到/目录下

#系统是6,默认tftpboot目录在/var/lib/下,需要centos6.x需要软链接到/目录下

#yum install syslinux

#先用find命令查找pxelinux.0文件,如果没有执行上面的命令

cp /usr/share/syslinux/pxelinux.0 /tftpboot

#拷贝到tftpboot目录下

引导文件pxelinux.0

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

将镜像中的文件拷贝出来:

cp /mnt/images/pxeboot/vmlinuz /tftpboot/

cp /mnt/images/pxeboot/initrd.img /tftpboot/

拷贝初始化引导文件,内核到tftpboot目录下

在tftpboot目录下

mkdir -p pxelinux.cfg

# 参数:-p 确保目录名称存在,如果目录不存在,就新创建一个

cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

拷贝isolinux.cfg配置文件并重命名为default,系统安装的时候会根据此文件的配置启动相应的选项

类似一个菜单:

........

#注意可能需要给default文件添加权限chmod 777这样

加入:

label centos7.8//centos7.8标签

kernel vmlinuz//内核文件

append ks=nfs:kickstart服务器的ip地址:/centosinstall/ks.cfg ksdevice=eth0 initrd=initrd.img

#/centosinstall是nfs共享linux镜像的目录,也是linux存放安装文件的路径

#ks.cfg是kickstart主配置文件

#设置timeout 10,超时时间为10s

#ksdevice=eth0代表客户端从eth0安装操作系统--用于多个网卡的服务器,vm环境下可以不用这个

由于安装7.8的centos版本,安装后是ens33

 

#default文件 将default后的 改为centos7.8,就可以默认引导到centos7.8这个标签来,就不需要在安装的时候输入centos7.8

 #客户端:

5.配置nfs

nfs传镜像文件--默认已经安装

mkdir -p /centosinstall

cp -rf /mnt/* /centosinstall

#把镜像文件都拷贝到centosinstall目录下

并在nfs配置文件/etc/exports添加

/centosinstall   *(rw,sync)

#centosinstrall为共享目录,rw,sync允许任何主机访问

#注意/centosinstall目录要有读写权限

6.kickstart配置

#配置kickstart,一个是可以使用system-kickstart系统软件包来配置,也可以直接拷贝/root/目录下的anaconda-ks.cfg到刚分享的/centosinstall目录下,并重命名为ks.cfg

anaconda-ks.cfg文件:

#chmod 777 ks.cfg

#根据需要修改ks文件:

#clearpart --all --initlabel//初始化所有磁盘

 ks.cfg文件可分三部分:命令部分,软件部分,脚本部分

其中脚本部分:

%pre:预安装脚本(由于只依赖于启动镜像,支持的命令很少)
%post:后安装脚本(基本支持所有命令)

在%post中如果加入wget的命令,就要在%packages中加入wget包

重启服务

/etc/init.d/nfs restart

/etc/init.d/xinetd restart

/etc/init.d/dhcpd restart

启动客户端:dhcp获取到地址。输入引导的是centos7.8

 

猜你喜欢

转载自www.cnblogs.com/lianyg/p/9583739.html