anaconda
html
REHL/CentOS系列的系統安裝程序名爲anaconda(就是那個裝系統時,讓你下一步下一步的的程序),咱們能夠經過修改此程序的配置文件實現自動化安裝.應用於大批量的機器須要安裝系統時.linux
anaconda是一個應用程序,要運行首先就須要內核,庫,在安裝光盤上提供一個微型的LINUX供anaconda運行.shell
在光盤的isolinux目錄下存放啓動須要的全部文件,例如kernel,initrd,類GRUB的Bootloader,工做過程與GRUB相似,當啓動成功即運行anaconda程序.vim
[root@EL6 /]# mount /dev/sr0 /mnt/網絡 mount: block device /dev/sr0 is write-protected, mounting read-onlyapp
[root@EL6 /]# ls /mnt/isolinux/less boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.jpg TRANS.TBL vesamenu.c32 vmlinuzide
boot.cat #位於MBR的stage1post isolinux.bin #stage2的程序文件spa 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,ftp或http方式什麼的把iso文件拷下來,建立新虛擬機光盤選擇此文件,啓動以下:
開始安裝,從http目錄下載rpm包到本地 |