学习怎么创建个基于已经安装好的linuxiso安装盘,实现完全的自动化安装。
首先linux安装Kickstart  根据脚本进行安装的方法;支持所有Anaconda特性;安装时自动生成/root/anaconda-ks.cfg.
在我们正常安装后的linuxroot家目录下都会有anaconda-ks.cfginstall.log这两个文件分别定义了
anaconda-ks.cfg分为三部分组成,首先是1命令:,配置系统和安装方式;2,安装软件包%package部分:为安装选择软件包和组以@开头的定义是软件包组下面定义的是所安装的软件包;3scripts sections脚本部分,主要定义了安装前的%pre所要执行的脚本但是大多命令可能会不支持的,和%post部分定义在安装完成后所要执行的脚本这里的命令一般情况下都支持的。
   Linux的安装可以通过网络安装(ftp,http,nfs)和光盘也可以通过.这里只说下怎么制作个通过本地安装的iso镜像
   首先我们也可以自己制作个kickstart自动安装文件或者可以使用本地主机上anaconda-ks.cfg,要是自己制作饿kickstart文件就需要安装system-config-kickstart软件包命令:yum –y install system-config-kickstart 安装完成后就可以运行install system-config-kickstart命令出现个图形的话的窗口这时我们就可以自己配置个完成自动化安装的文件了,可以按需要选择。完成后会自动生成个anaconda-ks.cfg文件,然后我们就要制作个引导程序了可以从我们的原光盘里拷贝出来一份。这里有个小脚本制作一个依靠本地已有的anaconda-ks.cfg文件和安装过的软件包来封装个iso镜像:
#!/bin/bash
export DDIR="/data/myiso"
export SDIR="/media/cdrom"
#这个MYRPM函数定义的是提取该系统中安装过的软件包和从光盘拷贝所需要#的软件包和创建个软件包的关系
MYRPM(){
echo "creating the packs,please waiting....."
FILENAME='/tmp/packlist.txt'
#这一步是提取安装系统中所需要的软件包,
grep "^Installing" /root/install.log |cut -d" " -f2 >/tmp/packlist.txt && sed -i -e 's/\(.*\)/\1.rpm/g' -e 's/^[1-9]\{1,\}:\(.*\)/\1/g' /tmp/packlist.txt
mkdir -p $DDIR/{Server,VT,Cluster,ClusterStorage} 2>> /tmp/error.txt
[ $? -eq 0 ]&&echo "Create is ok"
#这个循环是把获取到的软件包从光盘上拷到相对应的目录中
while read line ;do
 FILE=`find $SDIR -name $line`
 MYPATH=`find $SDIR -name $line |cut -d"/" -f4`
     cp $FILE $DDIR/$MYPATH/ 2>/dev/null
done <$FILENAME
[ $? -eq 0 ] && echo -e "The RPM is \033[1mok\033[0m." ||echo "PACK error!"
#软件包拷贝完成后我们还需要一些而外东西,例如引导项,这些也是需要从光#盘上拷贝的如下:
cp -r $SDIR/{p_w_picpaths,isolinux,.treeinfo,.discinfo,EULA,GPL,TRANS.TBL,eula.en_US} $DDIR
#这一步是做软件包关联的,先判断是否存在做关联的命令然后开始做关联
[ -e /usr/bin/createrepo ] || rpm -i $DDIR/Server/createrepo-*.noarch.rpm  &> /dev/null
   for REPODIR in Server VT Cluster ClusterStorage;do
        createrepo -g $SDIR/$REPODIR/repodata/comps-rhel5-*.xml $DDIR/$REPODIR
   done
find $DDIR/isolinux -name "*" -exec chmod u+w {} \;
}
#KS函数定义的是拷贝自动化的文件并作以修改,最后做个iso镜像
KS(){
#拷贝系统上的anaconda-ks.cfg文件并作修改的
  cp /root/anaconda-ks.cfg $DDIR/ks.cfg
  sed -i -e '/^# not g/,/^%packages/s/^#\([a-z].*\)/\1/g'  -e  's/^url.*$/cdrom/g' -e '/^%packages/i \reboot' -e 's/\(^clearpart.*\)/\1 --initlabel/g' $DDIR/ks.cfg
  [ -d /etc/yum.repos.d ] ||mkdir /etc/yum.repos.d >/dev/null
  cd $DDIR/isolinux
  sed -i 's/\(^default linux\).*/\1 ks=cdrom:\/ks.cfg/g' isolinux.cfg
  echo -e "The KS is \033[2mok\033[0m."
  cd /data
#这里是对上面的完成后做封装成iso镜像的
  mkisofs -o mylinux.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -V -J -T myiso/ &>/dev/null
}
MYRPM
KS
完成以上的步骤后我们的镜像系统只有六七百兆比起原来的安装包小了许多,
如果我们有一个ftp服务器并且有yum库的话,我们只用封装个引导项和完成自动化的文件就可以从ftp上来完成安装了。这里就不做介绍了!!