1. 程式人生 > >CentOS自動化安裝: anaconda

CentOS自動化安裝: anaconda

anaconda 自動化安裝

anaconda

REHL/CentOS系列的系統安裝程序名為anaconda(就是那個裝系統時,讓你下一步下一步的的程序),我們可以通過修改此程序的配置文件實現自動化安裝.應用於大批量的機器需要安裝系統時.

anaconda是一個應用程序,要運行首先就需要內核,,在安裝光盤上提供一個微型的LINUXanaconda運行.

在光盤的isolinux目錄下存放啟動需要的所有文件,例如kernel,initrd,GRUBBootloader,工作過程與GRUB類似,當啟動成功即運行anaconda程序.

[root@EL6 /]# mount /dev/sr0 /mnt/

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@EL6 /]# 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中定義:

[root@EL6 /]# 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