歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 配置ks.cfg實現自動安裝linux的過程

配置ks.cfg實現自動安裝linux的過程

日期:2017/3/3 16:32:14   编辑:關於Linux

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

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

linux安裝大致可以分為2個階段

第一階段:anaconda

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

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

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

非交互式則通過讀取kickstart文件的配置,進行自動安裝,這和window中的無人值守安裝差不多的,這個文件即是ks.cfg文件(相當於window中的wi2k3.sif應答文件)

而在安裝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,所以配置樣例比較精簡)

# Kickstart file automatically generated by anaconda.    
        
#version=DEVEL    
        
install  #表示是安裝,而不是升級    
        
text #文本方式安裝    
        
cdrom #安裝方式,如果是網絡安裝的話可以寫成 url ––url ftp://192.168.1.254/dir 或者 nfs --server=192.168.0.241 --dir=/centosinstall    
        
key –skip #這個是我另外添加的,如果是redhat的系統,會要求輸入key,這裡配置為跳過,如果不配置安裝時會停在那裡要求用戶輸入key    
        
lang en_US.UTF-8  #語言    
        
keyboard us #鍵盤樣式    
        
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的方式一樣    
        
rootpw  --iscrypted $6$PEJ49S7OkrNra3UM #管理員密碼,是加密過的 要是使用不加密的方式則這樣寫:rootpw 123456    
       
firewall --service=ssh #開啟防火牆,並打開ssh端口    
        
authconfig --enableshadow --passalgo=sha512 #用戶認證和密碼加密方式    
        
selinux --enforcing #強制打開selinux    
        
timezone --utc Etc/GMT+8 #時區設置    
        
zerombr yes #清空磁盤的mbr    
        
bootloader --location=mbr --driveorder=sda #引導程序相關參數    
        
# The following is the partition information you requested    
# Note that any partitions you deleted are not expressed    
# here so unless you clear all partitions first, this is    
# not guaranteed to work    
        
clearpart –all –initlabel #初始化磁盤    
        
part / --fstype=ext4 --size=18000 #開始分區    
part swap --grow --size=1024    
repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100    
        
reboot    
        
        
%packages --nobase #安裝的軟件包,這裡由於我安裝的是最小mini版,所以只安裝了核心軟件包組    
@core    
         
        
%post #後安裝腳本(這裡是我另外添加的,原來文件中沒有)    
id lustlost &>; /dev/null || useradd lustlost #檢查是否有lustlost用戶,如果沒有則添加    
echo 123456 | passwd –stdin lustlost #配置密碼    
        
cat >> /etc/yum.repos.d/base.repo << eof    
[base]    
name=baseserver    
baseurl=http://192.168.1.254/yum    
gpgcheck=0    
enable=1    
eof                                 #這裡在安裝系統成功後執行腳本自動配置一個yum源,其他腳本可以按照需要定義    
        
%end

如果覺得使用樣本的方式手工寫配置文件比較麻煩,也可以使用圖形化工具來制作ks.cfg文件

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

本文出自 “lustlost-迷失在欲望之中” 博客,請務必保留此出處http://lustlost.blog.51cto.com/2600869/910705

Copyright © Linux教程網 All Rights Reserved