手把手系列(四)教你用kickstart自动化安装CentOS系统

KickStart是一种半自动化的安装方式。安装者完全可以只告诉安装程序从何处获取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

本节索引:

一、KickStart安装简介

二、实验:使用kickstart自动化安装CentOS系统

三、实验:制作CentOS6的自动化启动引导文件boot.iso

四、实验:制作U盘自动化安装盘

五、实验:制作不依赖网络的完整CentOS6系统ISO自动安装盘

timg_image&quality=80&size=b9999_10000&sec=1527175089010&di=ef529acd12921d16b002

一、KickStart安装简介

KickStart是一种半自动化的安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预

填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装

文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适

的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart

文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何获取ks.cfg文件

,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

 

KickStart文件的格式:

KickStart文件格式与anaconda-ks.cfg文件格式十分类似,总体由三部分组成:

1)命令段:指明各种安装前配置,如键盘类型等

必备命令:

authconfig:认证方式配置

authconfig –useshadow –passalgo=sha512

bootloader:bootloader的安装位置及相关配置

bootloader –location=mbr –driveorder=sda –

append=”crashkernel=auto rhgb quiet”

keyboard:设定键盘类型

lang:语言类型

part:创建分区

rootpw:指明root的密码

timezone:时区

可选命令:

install OR upgrade

text:文本安装界面

network

firewall

selinux

halt

poweroff

reboot

repo

user:安装完成后为系统创建新用户

url: 指明安装源

key –skip 跳过安装号码,适用于rhel版本

 

2)程序包段:指明要安装的程序包组或程序包,不安装的程序包等

%packages

@group_name

package

-package

%end

3)脚本段:

%pre:安装前脚本

运行环境:运行于安装介质上的微型Linux环境

%post:安装后脚本

运行环境:安装完成的系统

安装后脚本非常有用,我们可以在这里定义系统安装完成后自动安装yum源,创建一些普通用户等功能

 

 

 

生成ks应答文件方法:

1.参照anaconda-ks.cfg文件修改(不常用)

2.利用system-config-kickstart图形工具制作(常用)

检查ks文件语法错误:

ksvalidator  /path/to/ks.cfg

 

在实验之前,我们还是先了解下系统安装程序anaconda以及光盘中isolinux目录的功能

 

anaconda:系统安装程序

1)安装前配置阶段:

安装过程使用的语言

键盘类型

安装目标存储设备

Basic Storage:本地磁盘

特殊设备:iSCSI

设定主机名

配置网络接口

时区

管理员密码

设定分区方式及MBR的安装位置

创建一个普通用户

选定要安装的程序包

 

2)安装阶段:

在目标磁盘创建分区,执行格式化操作等

将选定的程序包安装至目标位置

安装bootloader和initramfs

3)图形模式首次启动:

Iptables

Selinux

Core dump

系统在完成安装后,会在用户家目录自动生成一个anaconda-ks.cfg配置文件,记录了安装系统时选择的

各种参数,安装包等内容

 

系统光盘中isolinux目录列表文件:

boot.cat                    类似于系统启动时MBR的作用

grub.conf                 grub.conf文件镜像

initrd.img                  是ramfs虚拟文件系统(先cpio,再gzip压缩)

isolinux.bin               相当于grub的第二阶段

isolinux.cfg               isolinux.bin的配置文件,当光盘启动,会自动去找isolinux.cfg文件

memtest                   内存检测,这是一个独立程序

splash.jpg                 光盘启动界面的背景图

vesamenu.c32         菜单风格,菜单图标

vmlinuz                     内核镜像

 

 

二、实验:使用kickstart半自动化安装CentOS系统:

CentOS6:

一、系统默认未安装system-config-kickstart,先进行yum安装:

yum install system-config-kickstart

二、配置kickstart

1.基本配置

这里我们选择语言、键盘模式、时区,设置root账户密码并且选择安装后自动重启以及字符界面安装。

1基本配置

2.选择安装方式,我们以http安装为例

2安装方式

3.Boot Loader设置

3bootloader设置

4.分区设置,与正常安装CentOS系统时设置分区类似,点击Add添加分区

5分区信息

4分区设置

5.网络配置界面,用来配置系统安装完成后的网络地址

6网络配置

6.用户加密方式设置,我们选择默认即可

7用户密码加密方式

7.防火墙设置,在这里我们可以关闭SELinux策略,防火墙等级选择默认

8防火墙设置

8.显示设置

9显示设置

9.自定义安装包,我们可以在这一项选择想要安装的安装包,比如mysql数据库等

10自定义软件包

10.安装前脚本

11安装前脚本

11.安装后脚本

我们可以在这里定义系统安装完成后自动安装yum源,创建一些普通用户等功能

12安装后脚本

三、保存ks.cfg文件

13.保存ks.cfg文件

打开ks.cfg文件,可以看到刚才设置的参数已经保存在文件中,我们还可以直接修改ks.cfg文件,比如添加一些安装包等

15.修改kscfg文件

 

四、在本机打开httpd服务,并将fs.cfg文件上传到网页

service httpd restart

service iptables stop

mv ks6_mini.cfg /var/www/html

浏览器:http://172.20.101.101/ks6_mini.cfg确认

16确认上传浏览器

 

 

五、开启一台新虚拟机:

网卡设置为桥接模式

在进入光盘引导界面后,按ESC,出现下图界面,输入:

boot: linux ip=172.20.0.222  netmask=255.255.0.0  ks=http://172.20.0.223/ks6_mini.cfg

注:此处设置的ip地址是为了访问httpd服务设置的ip地址,与系统安装后的ip地址不同

17boot

六、自动化安装

如果ks.cfg文件没有设置出错的话,将进入自动安装界面

自动化安装软件包

七、安装完成

我们可以看到,安装后脚本也执行成功,wang账户创建成功,分区创建成功!

安装完成

 

CentOS7:

7版本的kickstart安装与6基本一致,仅需修改个别版本参数

需要注意的是,在可选安装包这一项,获取不到安装包信息

无可选安装包

解决方法将yum的base源名称改为development即可

修改yum源

再次打开,我们发现可选安装包又出现了

其他流程与安装CentOS6版本基本一致:

最小化安装

 

 

三、实验:制作CentOS6的启动光盘boot.iso

思路:参考ISO光盘内文件,制作boot6.iso

1.将光盘isoliux目录复制到/data/myiso目录下,ks.cfg文件复制到/data/myiso/ksdir下

目录结构如下:

准备目录

rm -rf /data/*

cd /data

mkdir myiso

cp -r /misc/cd/isolinux  /data/myiso/

mkdir /data/myiso/ksdir

cp  ks6_mini.cfg  /data/myiso/ksdir

cp  ks6_desktop.cfg  /data/myiso/ksdir

 

2.修改isolinux.cfg文件

cd isolinux/

vim isolinux.cfg

内存检测删掉

本地安装留下,且留作默认项(重要)

救援模式删掉

增加桌面安装

label desktop

kernel vmlinuz

append initrd=initrd.img ks=cdrom:/ksdir/ks6_desktop.cfg

增加最小化安装

label mini

kernel vmlinuz

append initrd=initrd.img ks=cdrom:/ksdir/ks6_mini.cfg

修改isolinux.cfg

3.生成boot.iso文件

mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6.9 x86_64 boot” -b isolinux/isolinux.bin -c isolinux/boot. cat -o /root/boot.iso /data/myiso/

生成boot.iso

4.将boot.iso文件导出系统,新开一台虚拟机,挂载boot.iso;并设置光盘引导启动

修改硬盘启动项

5.开机成功,显示我们通过isolinux.cfg修改过的菜单选项,默认本地安装,选择其他选项将进行对应系统的自动安装

开机画面

 

 

四、实验:制作U盘自动安装盘

思路:以实验三制作完成的boot.iso为启动文件,增加一块1G的虚拟硬盘/dev /sdc模拟U盘将iso转

1.为混合模式

isohybrid  boot.iso

转为混合模式

2.使用dd命令写入新硬盘

dd  if=boot.iso  of=/dev/sdc

dd写入

3.开启一台新的虚拟机,插入刚才的硬盘,并设置新硬盘为启动项

US6GAH3KDPS($P{@{]BASBU

4.启动成功

启动成功

 

五、实验:制作不依赖网络的完整CentOS6系统ISO自动安装盘

1.将CentOS6的第一张盘和第二张盘所有内容拷入centos6目录

mkdir  /data/centos6  

cp -rv /misc/cd/  /data/centos6                   第一张盘

cp -rv /misc/cd/*  /data/centos6                     第二张盘

2.删除centos6/repodata/文件,只留下.*comps.xml一个文件

repodata

3.根据.*comps.xml生成新的repodata目录

cd centos6/

createrepo -g  .*comps.xml  

生成新的repodata

4.将准备好的ks.cfg文件拷入/data/centos6/ksdir目录

mkdir  /data/centos6/ksdir

cp  ks6_mini.cfg /data/centos6/ksdir

cp  ks6_desktop.cfg /data/centos6/ksdir

 

5.删除/data/centos6目录下多余的文件,如TRANS.TBL文件

find /data/centos6 -name TRANS.TBL -exec rm {} \;

 

6.修改ks.cfg文件启动方式为光盘启动cdrom

vim ksdir/ks6_mini.cfg

#Use network installation

cdrom

修改cd引导

 

7.按照ks.cfg文件修改isoinux.cfg文件启动选项

cp /root/isolinux/isolinux.cfg   .

vim isolinux.cfg

注意设置本地启动为默认启动项

修改isolinux.cfg

 

8.生成boot.iso

mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6.9 x86_64 Everything” -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/CentOS-6.9-x86_64-Everything.iso /data/centos6/

 

9.将CentOS-6.9-x86_64-Everything.iso文件导出,由于文件过大,推荐使用xftp导出

xshell传输

 

10.新开一台虚拟机,挂载CentOS-6.9-x86_64-Everything.iso,设置光盘为开机启动

如无错误,将弹出选项可进行自动安装

安装

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99307

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code