CentOS自动化安装: anaconda

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS自动化安装: anaconda相关的知识,希望对你有一定的参考价值。

anaconda

REHL/CentOS系列的系统安装程序名为anaconda(就是那个装系统时,让你下一步下一步的的程序),我们可以通过修改此程序的配置文件实现自动化安装.应用于大批量的机器需要安装系统时.

anaconda是一个应用程序,要运行首先就需要内核,,在安装光盘上提供一个微型的LINUXanaconda运行.

在光盘的isolinux目录下存放启动需要的所有文件,例如kernel,initrd,GRUBBootloader,工作过程与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                #位于MBRstage1

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,ftphttp方式什么的把iso文件拷下来,创建新虚拟机光盘选择此文件,启动如下:

技术分享图片技术分享图片 

开始安装,http目录下载rpm包到本地

 

 


以上是关于CentOS自动化安装: anaconda的主要内容,如果未能解决你的问题,请参考以下文章

kickstart/anaconda实现自动安装

Mac环境下Sublime 3 配置 Anaconda 实现python自动补全

PXE自动安装CentOS6与CentOS7的实现

运维自动化之系统安装

在centos上安装Anaconda

实验自动化安装