個人使用的linux的安裝沒有太多難度,但是一旦到生産環境内,那種随性而裝系統的,将會給伺服器管理者帶來極大的麻煩,這裡需要對生産系統進行一定的定制,定制取決于公司的計算機的類型,公司的計算機往往都是一個類型一個型号。這裡定制就很友善了,把分區都設定一樣,這樣可以批量部署大批的機器。
一 linux安裝原理
回憶一下手動安裝一個系統的步驟:1選擇語言,2選擇鍵盤布局,3配置設定分區,4選擇安裝類型,5選擇額外的包,6選擇時區,7設定root密碼。安裝時候的主觀感受是配置一步系統執行一步,其實不然,等所有的配置都配置完後,安裝程序才開始,隻有配置設定分區是實時執行的。
安裝的程序叫anaconda,使用anaconda安裝系統後,在root目錄下會生成一個檔案anaconda-ks.cfg檔案,這個檔案就是安裝目前系統時的全部配置資訊,分區情況的那幾行被注釋掉了。以下簡稱ks檔案,我們可以直接去掉分區那幾行的注釋,直接使用這個配置安裝一個和目前系統一模一樣的系統。
二 ks檔案
配置檔案分為三段:
第一段是主要定義的是分區、grub密碼、使用者及密碼等等,格式如下(這裡的配置内容僅适合我的網絡環境):
install
url--url=http://172.16.0.1/cobbler/ks_mirror/6/
lang en_us.utf-8
keyboard us
network --onbootyes --device eth0 --bootproto dhcp --noipv6
# reboot afterinstallation
reboot
firewall--disabled
authconfig --useshadow --passalgo=sha512
selinux--disabled
timezoneasia/shanghai#part /boot --fstype=ext4 --size=200
#part pv.008002--size=61440
#volgroup vg0--pesize=8192 pv.008002
#logvol /--fstype=ext4 --name=root --vgname=vg0 --size=20480
#logvol swap--name=swap --vgname=vg0 --size=2048
#logvol /usr--fstype=ext4 --name=usr --vgname=vg0 --size=10240
#logvol /var--fstype=ext4 --name=var --vgname=vg0 --size=20480
repo--name="centos" --baseurl=http://172.16.0.1/cobbler/ks_mirror/6/ --cost=100
以#開頭的這幾行就是我的分區情況
第二段定義的是安裝的包組和安裝的包
%packages
@ 代表包組
代表包
%end
第三段定義的是系統安裝前和安裝後的執行的腳本,格式如下
%pre
這部分定義的安裝前腳本
%post
這部分定義的是安裝後腳本
配置檔案的格式比較簡單也比較好了解,但是靠手寫定制一個ks檔案還是有一定難度,linux中有一個基于圖形界面定制ks檔案的工具。
安裝ks檔案生成工具kisckstart
yum install system-config-kickstart -y
運作kisckstart
system-config-kickstart
這個界面我們按照linux的界面基本類似,隻有兩個部分不一樣,一個是display configuration,這裡選擇是否安裝圖形界面,不安裝圖形界面的話就是最小安裝;另一個是package selection,這裡是選擇安裝的包。
centos7使用這個是會有一點問題,可以參考我的另一部落格:http://oldking.blog.51cto.com/10402759/1876181
三 ks檔案的使用
安裝linux的時候,在最開始的選擇安裝還是更新系統那一個界面按exc,進入指令行模式,輸入linux ks=ks檔案的位置
這個ks檔案可以是在http伺服器、ftp伺服器或本地檔案系統上。位于本地檔案系統的格式(這個格式隻适用我,要用的話需要适當的變更):
ks=cdrom:/myks.cfg
位于網絡的格式(同樣這個格式隻适用我)
ks=http://172.16.29.1/myks.cfg
ks=ftp://172.16.29.1/pub/myks.cfg
這裡我們需要定制引導盤,定制步驟如下:
cp /media/cdrom/isolinux//tmp/myiso/
vim/tmp/myiso/isolinux/isolinux.cfg
timeout 600 這一行是開機後選擇安裝等待的時間,600=60s
initrd=initrd.img textks=cdrom:/myks.cfg text是以字元樣子安裝系統
cp /root/myks.cfg /tmp/myiso/
cd /tmp
mkisofs -r -j -t -v--no-emul-boot --boot-loadsize 4 --boot-info-table -v "centos 7.2 x86_64boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.isomyiso/
這時會在/root/目錄下生成boot.iso檔案,我們把這個檔案發送到windows中就可以使用了,或者直接使用dd指令把這個檔案寫到CD光牒或u盤,就可以自動化安裝系統了。
總結
這一節主要是為了實作自動化安裝linux,大規模部署linux。首先我們要有一個ks檔案,使用system-config-kisckstart定義我們想要安裝的系統樣式;然後就是制作引導CD光牒boot.iso