天天看點

自動化安裝linux

  個人使用的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

繼續閱讀