kickstart
我们都知道redhat系列安装系统都是需要anaconda来引导安装系统,光盘安装系统其实在光盘中也是运行了一个的linux系统来使用anaconda安装系统,安装完成系统才是正常的linux系统启动流程,相信普通的安装linux系统谁都会,而使用无人值守安装,这个过程的核心就是kickstart,kickstart是anaconda的配置文件。而光盘文件动辄几个g的大小,光下载光盘文件就花费大量时间,这里我使用了kickstart+阿里云镜像站点安装我们需要的系统。
kickstart文件的组成
- 命令段:指定各种安装前配置选项,如键盘类型,认证方式等。
- 程序包段:指明安装程序包,以及包组。
- 脚本段:分为安装前脚本和安装后脚本,可以定义一些系统安装完的初始化配置。
kickstart配置
kickstart的配置文件可以使用很多中方法生成:
- 纯手写,这里面的命令参数多达上百页,估计是受不了。
- 改模版,每次我们安装完系统在/root目录下会生成anaconda-ks.cfg,这个就是你本次使用的kickstart的配置文件,我们修改下就能用。
- 安装图形化界面,安装system-config-kickstart,在图形化界面点点配置下再生成kickstart。
所以我选择方便点的配置方式,安装下yum install -y system-config-kickstart
关键的配置地方就在这里,我们选择了安装的方式,是从阿里云镜像站点上的os系统,而不是访问我们的cdrom的本地资源,至于其他配置相信大家都可以看懂,蛮简单的,然后我们生成ks.cfg。
启动ios制作
其实这个时候我们使用kickstart就已经可以一步到位的安装完系统了,但是其实还是不够自动化,目前为止,我们如果插入光盘引导,按esc键:
1 | boot> linux ks=http://192.168.100.1/ks.cfg ip=192.168.100.35 netmask=255.255.255.0 gateway=192.168.100.1 dns=114.114.114.114 |
以上配置是基于一个web服务器来加载kickstar文件自动安装,至于后面的ip选项,如果在整个实验环境存在dhcp服务器,都可以省,具体按照环境进行,可以看到这里我们需要还需要一台web服务器来做请求资源,并且还需要敲指令,感觉好麻烦。
那么我们自己把光盘中文件再次封装成iso,自己来定制下启动过光盘。
1 | #mount /dev/cdrom /mnt/cdrom |
2 | #mkdir /myboot |
3 | #cp /mnt/cdrom/ioslinux /myboot |
4 | #cp ks.cfg /myboot |
5 | #cd /mnt/cdrom/ioslinux |
6 | #vim isolinux.cfg |
7 | ... |
8 | label linux |
9 | menu label ^Install or upgrade an existing system |
10 | menu default |
11 | kernel vmlinuz |
12 | append initrd=initrd.img ks=cdrom:/ks.cfg |
13 | ... |
在append中向内核传递了kickstart的文件位置
接下来我们封装成iso文件,要在myboot的上一层封装。
1 | #mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot |
加下来我们查看下我们新封装好的iso文件
1 | [root@node2 ~]# ll boot.iso -h |
2 | -rw-r--r--. 1 root root 44M Feb 25 01:36 boot.iso |
44m,那就是我们可以使用一个44m的文件安装一个系统。
那好我们开始
按照普通的方式加入dvd
注意:因为是基于网络的安装,所以请保证网络畅通,最好再自己做个dhcp服务器,如果不想这么麻烦,那就在光盘配置文件中在添加下对网络的配置:
1 | #vim isolinux.cfg |
2 | ... |
3 | label linux |
4 | menu label ^Install or upgrade an existing system |
5 | menu default |
6 | kernel vmlinuz |
7 | append initrd=initrd.img ks=cdrom:/ks.cfg ipaddr=10.211.55.55 netmask=255.255.255.0 gateway=10.211.55.1 dns=8.8.8.8 |
8 | ... |
整个光盘的请求是基于请求到阿里云镜像站点的os镜像安装,基于kickstart配置,全程我们都不需要参与。