linux安裝詳解-配置ks.cfg實現自動安裝過程

每個優秀的人,都有一段沉默的時光。那一段時光,是付出了不少努力,忍受孤獨和寂寞,不抱怨不訴苦,往後提及時,連本身都能被感動日子。linux

                                                        --馬哥語錄express

以前發過一篇關於經過PEX實現linux批量無人值守自動安裝的博文,不過寫的只是具體的配置和操做,對於原理部分沒有說明,最近經過一段時間的學習,把linux的啓動安裝過程深刻的瞭解了下,這裏還要特別感謝馬哥的指導centos

言歸正傳,下面開始深刻探討linux的安裝網絡

linux安裝大體能夠分爲2個階段less

第一階段:anacondadom

第二階段:installinstall階段系統會按照anaconda階段設定的參數自動安裝,這裏主要要說的是anaconda階段,此階段是linux的預安裝環境,提供linux安裝選項的一個接口,能夠將它比做是window中的PE環境ssh

anaconda有兩種模式:交互式和非交互式ide

交互式就和普通安裝同樣,按照提示選擇選項一步步的安裝工具

非交互式則經過讀取kickstart文件的配置,進行自動安裝,這和window中的無人值守安裝差很少的,這個文件便是ks.cfg文件(至關於window中的wi2k3.sif應答文件)post

而在安裝linux過程當中,獲取ks.cfg文件的方式有多種,如直接在cdrom中獲取,常見的形式還有http,ftp,nfs等方式

格式有三種:

cdrom和硬盤

ks=cdrom:/dir/ks.cfg(硬盤的話把cdrom換成hd便可,下面的相似)

http和ftp

ks=http://domain.com/dir/ks.cfg

NFS

ks=nfs:domain.com:/dir/ks.cfg

三種格式主要區分在於後面的斜槓,這裏要注意區分

 

在使用ks.cfg以前,須要先引導啓動環境

引導方式有不少,cdrom,usb,PXE等。

在引導進入anaconda後,便可經過讀取ks.cfg來進行系統的自動安裝

這裏開始說說kickstart文件的大體內容

ks.cfg文件組成大體分爲3段

1.命令段:

鍵盤類型,語言,安裝方式等系統的配置,有必選項和可選項,若是缺乏某項必選項,安裝時會中斷並提示用戶選擇此項的選項

2.軟件包段:

%packages

@groupname:指定安裝的包組

package_name:指定安裝的包

-package_name:指定不安裝的包

在安裝過程當中默認安裝的軟件包,安裝軟件時會自動分析依賴關係。

3.腳本段(可選):

%pre:預安裝腳本(因爲只依賴於啓動鏡像,支持的命令不多)

%post:後安裝腳本(基本支持全部命令)

 

而具體的ks.cfg文件的配置,咱們只須要在已經安裝好的linux的root家目錄找到anaconda_ks.cfg(這個ks文件就是在安裝linux後,根據用戶的安裝選項自動生成的)

下面的是個人一個樣例

 

(系統是CentOS-6.2-i386-minimal,因此配置樣例比較精簡)

 

  
  
  
  
  1. # Kickstart file automatically generated by anaconda. 
  2.  
  3. #version=DEVEL 
  4.  
  5. install  #表示是安裝,而不是升級 
  6.  
  7. text #文本方式安裝 
  8.  
  9. cdrom #安裝方式,若是是網絡安裝的話能夠寫成 url ––url ftp://192.168.1.254/dir 或者 nfs --server=192.168.0.241 --dir=/centosinstall 
  10.  
  11. key –skip #這個是我另外添加的,若是是redhat的系統,會要求輸入key,這裏配置爲跳過,若是不配置安裝時會停在那裏要求用戶輸入key 
  12.  
  13. lang en_US.UTF-8  #語言 
  14.  
  15. keyboard us #鍵盤樣式 
  16.  
  17. network --onboot no --device eth0 --noipv4 --noipv6 #網絡配置 配置具體參數樣例:network –onboot yes --bootproto=static --ip=192.168.1.1 --netmask=255.255.255.0 其餘網關,DNS等格式和ifcfg-ethx的方式同樣 
  18.  
  19. rootpw  --iscrypted $6$PEJ49S7OkrNra3UM #管理員密碼,是加密過的 要是使用不加密的方式則這樣寫:rootpw 123456 

  20. firewall --service=ssh #開啓防火牆,並打開ssh端口 
  21.  
  22. authconfig --enableshadow --passalgo=sha512 #用戶認證和密碼加密方式 
  23.  
  24. selinux --enforcing #強制打開selinux 
  25.  
  26. timezone --utc Etc/GMT+8 #時區設置 
  27.  
  28. zerombr yes #清空磁盤的mbr 
  29.  
  30. bootloader --location=mbr --driveorder=sda #引導程序相關參數 
  31.  
  32. # The following is the partition information you requested 
  33. # Note that any partitions you deleted are not expressed 
  34. # here so unless you clear all partitions first, this is 
  35. # not guaranteed to work 
  36.  
  37. clearpart –all –initlabel #初始化磁盤 
  38.  
  39. part / --fstype=ext4 --size=18000 #開始分區 
  40. part swap --grow --size=1024 
  41. repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100 
  42.  
  43. reboot 
  44.  
  45.  
  46. %packages --nobase #安裝的軟件包,這裏因爲我安裝的是最小mini版,因此只安裝了核心軟件包組 
  47. @core 
  48.   
  49.  
  50. %post #後安裝腳本(這裏是我另外添加的,原來文件中沒有) 
  51. id lustlost &>; /dev/null || useradd lustlost #檢查是否有lustlost用戶,若是沒有則添加 
  52. echo 123456 | passwd –stdin lustlost #配置密碼 
  53.  
  54. cat >> /etc/yum.repos.d/base.repo << eof 
  55. [base] 
  56. name=baseserver 
  57. baseurl=http://192.168.1.254/yum 
  58. gpgcheck=0 
  59. enable=1 
  60. eof                                 #這裏在安裝系統成功後執行腳本自動配置一個yum源,其餘腳本能夠按照須要定義 
  61.  
  62. %end 

若是以爲使用樣本的方式手工寫配置文件比較麻煩,也可使用圖形化工具來製做ks.cfg文件

在linux中用yum安裝system-config-kickstart就好了(圖形化依賴於x-window),選項也有些限制(好比分區不能使用lvm),這裏就再也不演示了

相關文章
相關標籤/搜索