ks全自动安装centos

本文详细介绍了如何使用kickstart自动化安装CentOS,包括编辑安装日志、创建rpm包目录、挂载ISO、生成ks.cfg配置文件、设置自动安装模式、创建kickstart文件等步骤,适用于批量部署或无人值守安装。
摘要由CSDN通过智能技术生成

1. 全新安装centos,选择好所需定制包

2. 完成安装后会在root下面生成一个install.log(rpm包列表)anaconda-ks.cfg(下文的ks.cfg基于此文件修改)

3. 将其简单编辑下保存起来
   cat /root/install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9]/+://g' > /tmp/rpm.log

4. 创建存放rpm包的目录
   mkdir -p /tmp/cdrom/CentOS

5. 将centos光盘或iso文件挂在到mnt下
   mount -o loop CentOS-5.5-i386-bin-DVD.iso /mnt
   mount /dev/cdrom /mnt/

6. 将所需软件包(rpm.log 列出的)copy到 /tmp/cdrom/CentOS/ 下

使用shell如下(网上找到的,不是本人写的):
#!/bin/bash
DEBUG=0
LT_CD=/mnt
ALL_RPMS_DIR=/mnt/CentOS
LT_RPMS_DIR=/tmp/cdrom/CentOS/
packages_list=/tmp/rpm.log
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line | awk '{print $1}'`
version=`echo $line | awk '{print $3}' | cut -f 2 -d :`
if [ $DEBUG -eq "1" ] ; then
echo $i: $line
echo $name
echo $version
fi
if [ $DEBUG -eq "1" ] ; then
ls $ALL_RPMS_DIR/$name-$version*
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
fi
else
echo “cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/”
cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
fi
fi
i=`expr $i + 1`
done

7. 赋予执行权限 chmod 777 rpm.sh
   执行shell   ./rpm.sh

8. 将除CentOS目录以外的文件同步到cdrom文件夹里
   rsync -avpz --exclude=CentOS /mnt/ /tmp/cdrom/

9. 更新光盘软件包结构
cd /tmp/cdrom/CentOS
createrepo -g ../repodata/comps.xml .
rm -rf ../repodata/*
mv repodata/* ../repodata/

9. 设定为自动安装模式,修改/tmp/cdrom/CentOS/isolinux/isolinux.cfg文件,改为如下
   cat /tmp/cdrom/CentOS/isolinux/isolinux.cfg
default linux
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img ramdisk_size=8192 ks=cdrom:/ks.cfg
label text
  kernel vmlinuz
  append initrd=initrd.img text
label ks
  kernel vmlinuz
  append ks initrd=initrd.img
label local
  localboot 1
label memtest86
  kernel memtest
  append -

10.生成ks.cfg文件
cat /tmp/cdrom/CentOS/ks.cfg

install
cdrom
lang en_US.UTF-8
keyboard us
network --device=eth0 --bootproto static --ip 192.168.0.6 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 8.8.8.8 --hostname csys
rootpw --iscrypted $1$ioa/i9np$zbOdjS52XKA62z7NC5KwN/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=hdb
text
firstboot --disable
logging --level=info
reboot
zerombr
clearpart --all --initlabel
part swap --fstype="swap" --size=2000
part /boot --fstype="ext3" --size=100
part / --fstype="ext3" --size=20000
part /opt --fstype="ext3" --grow --size=1
skipx
%packages --resolvedeps
@base
@core
@dialup
@editors
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
%post
echo "nameserver 202.106.46.151" >> /etc/resolv.conf
/sbin/chkconfig microcode_ctl off
/sbin/chkconfig lvm2-monitor off
/sbin/chkconfig readahead_early off
/sbin/chkconfig kudzu off
/sbin/chkconfig mcstrans off
/sbin/chkconfig isdn off
/sbin/chkconfig auditd off
/sbin/chkconfig restorecond off
/sbin/chkconfig cpuspeed off
/sbin/chkconfig irqbalance off
/sbin/chkconfig portmap off
/sbin/chkconfig nfslock off
/sbin/chkconfig mdmonitor off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig rpcgssd off
/sbin/chkconfig messagebus off
/sbin/chkconfig bluetooth off
/sbin/chkconfig netfs off
/sbin/chkconfig pcscd off
/sbin/chkconfig acpid off
/sbin/chkconfig apmd off
/sbin/chkconfig haldaemon off
/sbin/chkconfig hidd off
/sbin/chkconfig autofs off
/sbin/chkconfig cups off
/sbin/chkconfig rawdevices off
/sbin/chkconfig sendmail off
/sbin/chkconfig gpm off
/sbin/chkconfig anacron off
/sbin/chkconfig atd off
/sbin/chkconfig yum-updatesd off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig firstboot off
/sbin/chkconfig local off
/sbin/chkconfig smartd off
/usr/sbin/eject

11.制作iso文件
mkisofs -r -T -J -V CentOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /tmp/CentOS5.5-i386.iso /tmp/cdrom/


#参考资料:

kickstart是什么
        许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案.
        Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择.
        Kickstart给用户提供了一种自动化安装红帽企业Linux的方法.


如何执行kickstart安装
        kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS,FTP,HTTP 来执行.
        要使用 kickstart,必须:
                1.创建一个kickstart文件.
                2.创建有kickstart文件的引导介质或者使这个文件在网络上可用.
                3.筹备安装树.
                4.开始kickstart安装.


创建kickstart文件
        kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别.可以用「Kickstart 配置」应用程序创建它或是自己从头编写.红帽企业Linux安装程序也根据在安装过程中的选择创建一个简单的kickstart文件,这个文件被写入到 /root/anaconda-ks.cfg.可以用任何能够把文件保存为ASCII文本的文本编辑器或字处理器来编辑它.
        首先,在创建kickstart文件时留意下列问题:
                1.每节必须按顺序指定.除非特别申明,每节内的项目则不必按序排列.小节的顺序为:
                        命令部分,这里应该包括必需的选项.
                        %packages部分,这部分选择需要安装的软件包.
                        %pre和%post部分,这两个部分可以按任何顺序排列而且不是必需的.
                2.不必需的项目可以被省略.
                3.如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样.一旦用户进行了选择,安装会以非交互的方式(unattended)继续(除非找到另外一个没有指定的项目).
                4.以井号("#")开头的行被当作注释行并被忽略.
        对于 kickstart 升级,下列项目是必需的:
                1.语言
                2.安装方法
                3.设备规格(如果这个设备是在安装过程中所需要的)
                4.键盘设置
                5.upgrade 关键字
                6.引导装载程序配置
                7.如果任何其他的项目被指定为upgrade,这些项目将被忽略(注意这包括了软件包选择).


kickstart命令选项
        下面的选项可以放入kickstart文件.如果喜欢使用图形化的界面来创建kickstart文件,可以使用"Kickstart 配置"应用程序.(注:如果某选项后面跟随了一个等号(=),它后面就必须指定一个值.在示例命令中,括号([])中的选项是命令的可选参数.)

        autopart(可选)
                自动创建分区,大于1GB的根分区(/),交换分区和适合于不同体系结构的引导分区.一个或多个缺省分区的大小可以用part指令重新定义.

        ignoredisk(可选)
                导致安装程序忽略指定的磁盘.如果使用自动分区并希望忽略某些磁盘的话,这就很有用.
                        例如,没有ignoredisk,如要试图在SAN-cluster系统里部署,kickstart就会失败,因为安装程序检测到SAN不返回分区表的被动路径(passive path).
                如果有磁盘的多个路径时,ignoredisk选项也有用处.
                语法是:
                        ignoredisk --drives

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值