自动化装机的核心是——kickstart。kickstart是一个装机自动应答文件,它可实现手动改装机时的各种操作,通过配置文件中的命令,实现自动应答装机。只有kickstart免去了我们在安装OS时手动选择和配置例如键盘,时区,分区等操作;还是需要人为去参与。自动化装机最终实现应该时在kickstart基础上实现,除通过dhcp服务器获取动态IP外,还从dhcp服务器中获得tftp服务器的位置,在tftp加载启动文件和内核等文件。从而实现从以网络的方式自动安装操作系统。
kickstart的创造方式:
- 在手动安装后,在/root下自动生成kickstart文件——anaconda-ks.cfg。我们可以根据此文件稍加修改形成自己个性的配置。
- 使用systemc-kickstart-config工具自动生成kickstart文件
- 手工编写文件
下面是一个ks文件示例
install keyboard 'us' rootpw --iscrypted $1$tMDmgsuf$HPBEmj8FpqjphA30DzmG70 lang en_US auth --useshadow --passalgo=sha512 cdrom text ##文本界面安装 firstboot --disable selinux --disabled ##关闭selinux skipx firewall --disabled ##关闭防火墙 timezone Asia/Shanghai ##时区配置 bootloader --append="net.ifnames=0" --location=mbr ###"net.ifnames=0" 在centos7 上使用eth样式的网卡明明规则 zerombr clearpart --all part / --fstype="ext4" --size=10000 ##分区信息 %post echo "hello" > /root/1.txt ###安装后配置脚本 %end %packages @^minimal ##安装最小化安装包组 %end
实验一:根据ks文件示例实现半自动化安装os。
实验环境
两台VMware虚拟机。192.168.206.15作为http服务器,提供通过网络获取ks文件功能,代号X一台新建虚拟机没有操作系统,代号Y
实验步骤
第一步:X上搭建http服务器,将ks文件放在/var/www/html/ks7/testks.cfg
第二步:Y需要在VMware的编辑虚拟机中选择好要使用的centos7光盘
第三步:Y开机时按F2进入bios选择第一启动为光盘启动
第四步:如下图,Y上出现grub选择界面时选择第一项,按table。在后边添加ks=http://192.168.206.15/ks7/testks.cfg。
第五步:按enter开始自动安装。装机完成。
实验二:Pxe自动化安装服务器。
实验环境
192.168.206.15作为http,tftp服务器代号X,一台新建虚拟机没有操作系统,代号Y
安装软件包
yum -y install httpd tftp-server dhcp syslinux system-config-kickstart
syslinux:可以提供从网络安装os时需要的网络版bootloader——pxelinux.0
httpd:作为发布镜像以及ks文件的网站
Img:是/dev/sr0光盘镜像的挂在位置,ks6,ks7存放了ks文件
dhcp:提供动态IP,并指定tftp位置
tftp:pxelinux.0及其配置文件存放的位置存放路径/var/lib/tftpboot/
menu.c32提供文本环境安装界面
default是由grub的配置文件重命名后得到的定制化的grub界面,提供启动菜单。
cp /var/www/html/img/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vmlinux:内核文件
配置服务
①配置文件共享服务:
systemctl enable httpd
systemctl start httpd
mkdir /var/www/html/img
mount /dev/sr0 /var/www/html/img
②准备kickstart文件
使用system-kickstart-config 生成后放在/var/www/html/testks.cfg 注意:权限
③配置tftp服务
systemctl enable tftp.socket
systemctl start tftp.socket
tftp不用做配置。它的默认共享目录为/var/lib/tftpboot/
④配置dhcp服务
systemctl enable dhcpd
systemctl start dhcpd
配置内容如下,next-server指明tftp位置
⑤相关文件准备
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /var/www/html/img/isolinux/{vmlinuz,initrd.img} / var/lib/tftpboot/
cp /var/www/html/img/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
⑥准备启动菜单
Vim /var/lib/tftpboot/pxelinux.cfg/default 。建议将本地启动label local设为默认项,以防止,安装系统后,重启时会自动在安装系统
开启自动安装
选择第一项,后续就不用操作。装机会自动进行