CentOS自动化安装: anaconda
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS自动化安装: anaconda相关的知识,希望对你有一定的参考价值。
anaconda
REHL/CentOS系列的系统安装程序名为anaconda(就是那个装系统时,让你下一步下一步的的程序),我们可以通过修改此程序的配置文件实现自动化安装.应用于大批量的机器需要安装系统时.
anaconda是一个应用程序,要运行首先就需要内核,库,在安装光盘上提供一个微型的LINUX供anaconda运行.
在光盘的isolinux目录下存放启动需要的所有文件,例如kernel,initrd,类GRUB的Bootloader,工作过程与GRUB类似,当启动成功即运行anaconda程序.
[[email protected] /]# mount /dev/sr0 /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only
[[email protected] /]# ls /mnt/isolinux/ boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.jpg TRANS.TBL vesamenu.c32 vmlinuz
boot.cat #位于MBR的stage1 isolinux.bin #stage2的程序文件 isolinux.cfg #stage2的配置文件 vesamenu.c32 #图形接口 vmlinuz #Kernel initrd.img #ramdisk |
anaconda的工作过程:
1)安装前配置阶段,例如选择键盘类型,选择语言,选择分区方案,时区,用户密码...
2)安装运行阶段,例如创建分区,格式化,挂载磁盘,安装软件包,安装Bootloader
3)首次启动,有些程序需要配置,例如iptables,selinux,core dump
而我们要实现的自动安装则是将安装前配置写入到配置文件中,省略步骤一,直接进行安装:
模板配置文件详解:
]# less ~/anaconda-ks.cfg #命令段 .... #程序包段 %packges @group_name #要安装的包组 package #要安装的程序包 -packge #某个包组中,不安装的程序包 %end
#脚本段 %pre #执行安装前运行的脚本,没有安装系统,命令有限 ... %end
%post #安装系统后,还未重启,这时需要执行的脚本(收尾操作) ... %end
|
这个文件自己写太过复杂,我们可以通过命令来生成kickstart文件
]#yum install -y system-config-kickstart.noarch ]# system-config-kickstart #运行,需要图形化界面,使用xshell可运行图形窗口
选择相应的配置,最后选择”file” -> ”save”保存即可 |
]# ksvalidator ~/ks.cfg #检查是否存在错误
现在我们kickstart文件有了,anaconda读取此文件即可自动安装,那么怎么让anaconda程序读取到呢,这里使用光盘启动程序的命令行接口,将ks文件的位置传递给kernel.
接口命令行:
在光盘中看到的安装选项都由isolinux.cfg中定义:
[[email protected] /]# cat /mnt/isolinux/isolinux.cfg default vesamenu.c32 #prompt 1 timeout 600
display boot.msg
menu background splash.jpg #背景图 menu title Welcome to CentOS 6.5!label linux #标题
label Install or upgrade an existing system #标签名,在boot:下可启动 menu default #默认启动 kernel vmlinuz #内核 append initrd=initrd.img #append表示传递的内核参数
label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append - |
注: 按tab键,添加内核参数 按esc键,进入命令行界面: 在Boot:提示符下输入标签名,即可启动相应的内核及参数
常用的内核参数命令: text 以文本显示界面安装 method 指定要安装rpm包的位置 网络参数: ip= ,mask= , dns= , gateway= , ifname=name:mac 远程参数: vnc vncpassword=”xxx” 指定kickstart文件的位置: ks=http://x.x.x.x/ks.cfg ks=https://x.x.x.x/ks.cfg ks=nfs://x.x.x.x/ks.cfg ks=ftp://x.x.x.x/ks.cfg ks=cdrom:/x.x.x.x/ks.cfg ks=hd:/x.x.x.x/ks.cfg
|
环境说明: kickstart文件生成存放在http://192.168.80.102/ks.cfg下 自动安装设置: linux #表示启动标签名为Linux的启动项 回车之后就进行安装了 |
制作一个启动引导光盘,将软件包存放在网络中:
]# mkdir myiso ]# cp -rf /mnt/isolinux myiso/ #拷贝启动文件 ]# cp -rf /mnt/images /var/www/html/packs/ #拷贝安装程序到rpm包目录下 ]# cp ~/ks.cfg myiso/ ]# vim myiso/isolinux/isolinux.cfg #新增label label auto_installation menu label Auto Installation CentOS6 menu default kernel vmlinuz append initrd=initrd.img ks=cdrom:/ks.cfg
]# mkisofs -R -J -T -v --no-emul-boot -boot-load-size 4 -boot-info-table -V "MYISO_INSTALLATION" -b isolinux/isolinux.bin -c isolinux/boot.cat -o auto_install.iso myiso/
用scp,ftp或http方式什么的把iso文件拷下来,创建新虚拟机光盘选择此文件,启动如下:
开始安装,从http目录下载rpm包到本地
|
以上是关于CentOS自动化安装: anaconda的主要内容,如果未能解决你的问题,请参考以下文章