天天看点

自动化安装linux

  个人使用的linux的安装没有太多难度,但是一旦到生产环境内,那种随性而装系统的,将会给服务器管理员带来极大的麻烦,这里需要对生产系统进行一定的定制,定制取决于公司的计算机的类型,公司的计算机往往都是一个类型一个型号。这里定制就很方便了,把分区都设置一样,这样可以批量部署大批的机器。

一 linux安装原理

  回忆一下手动安装一个系统的步骤:1选择语言,2选择键盘布局,3分配分区,4选择安装类型,5选择额外的包,6选择时区,7设置root密码。安装时候的主观感受是配置一步系统执行一步,其实不然,等所有的配置都配置完后,安装进程才开始,只有分配分区是实时执行的。

  安装的进程叫anaconda,使用anaconda安装系统后,在root目录下会生成一个文件anaconda-ks.cfg文件,这个文件就是安装当前系统时的全部配置信息,分区情况的那几行被注释掉了。以下简称ks文件,我们可以直接去掉分区那几行的注释,直接使用这个配置安装一个和当前系统一模一样的系统。

二 ks文件

配置文件分为三段:

第一段是主要定义的是分区、grub密码、用户及密码等等,格式如下(这里的配置内容仅适合我的网络环境):

install

url--url=http://172.16.0.1/cobbler/ks_mirror/6/

lang en_us.utf-8

keyboard us

network --onbootyes --device eth0 --bootproto dhcp --noipv6

# reboot afterinstallation

reboot

firewall--disabled

authconfig --useshadow  --passalgo=sha512

selinux--disabled

timezoneasia/shanghai#part /boot --fstype=ext4 --size=200

#part pv.008002--size=61440

#volgroup vg0--pesize=8192 pv.008002

#logvol /--fstype=ext4 --name=root --vgname=vg0 --size=20480

#logvol swap--name=swap --vgname=vg0 --size=2048

#logvol /usr--fstype=ext4 --name=usr --vgname=vg0 --size=10240

#logvol /var--fstype=ext4 --name=var --vgname=vg0 --size=20480

repo--name="centos" --baseurl=http://172.16.0.1/cobbler/ks_mirror/6/ --cost=100

以#开头的这几行就是我的分区情况

第二段定义的是安装的包组和安装的包

%packages

@                 代表包组

                     代表包

%end

第三段定义的是系统安装前和安装后的执行的脚本,格式如下

%pre

这部分定义的安装前脚本

%post

这部分定义的是安装后脚本

  配置文件的格式比较简单也比较好理解,但是靠手写定制一个ks文件还是有一定难度,linux中有一个基于图形界面定制ks文件的工具。

安装ks文件生成工具kisckstart

yum install system-config-kickstart -y

运行kisckstart

system-config-kickstart

这个界面我们按照linux的界面基本类似,只有两个部分不一样,一个是display configuration,这里选择是否安装图形界面,不安装图形界面的话就是最小安装;另一个是package selection,这里是选择安装的包。

centos7使用这个是会有一点问题,可以参考我的另一博客:http://oldking.blog.51cto.com/10402759/1876181

三 ks文件的使用

  安装linux的时候,在最开始的选择安装还是升级系统那一个界面按exc,进入命令行模式,输入linux ks=ks文件的位置

这个ks文件可以是在http服务器、ftp服务器或本地文件系统上。位于本地文件系统的格式(这个格式只适用我,要用的话需要适当的变更):

ks=cdrom:/myks.cfg

位于网络的格式(同样这个格式只适用我)

ks=http://172.16.29.1/myks.cfg

ks=ftp://172.16.29.1/pub/myks.cfg

这里我们需要定制引导盘,定制步骤如下:

cp /media/cdrom/isolinux//tmp/myiso/

vim/tmp/myiso/isolinux/isolinux.cfg

timeout 600               这一行是开机后选择安装等待的时间,600=60s

initrd=initrd.img textks=cdrom:/myks.cfg     text是以字符样子安装系统

cp /root/myks.cfg /tmp/myiso/

cd /tmp

mkisofs -r -j -t -v--no-emul-boot --boot-loadsize 4 --boot-info-table -v "centos 7.2 x86_64boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.isomyiso/

这时会在/root/目录下生成boot.iso文件,我们把这个文件发送到windows中就可以使用了,或者直接使用dd命令把这个文件写到光盘或u盘,就可以自动化安装系统了。

总结

  这一节主要是为了实现自动化安装linux,大规模部署linux。首先我们要有一个ks文件,使用system-config-kisckstart定义我们想要安装的系统样式;然后就是制作引导光盘boot.iso

继续阅读