歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

kickstart自動化安裝linux

參考了51cto博客各路大神的文章,結合自己實踐過程,雖中間經歷了些困難挫折,最終還是成功完成配置,實現了自動化安裝linux。

(重點參考灰度的BLOG, http://rrliang.blog.51cto.com/4214966/1040863)

安裝環境,虛擬機VirtualBox虛擬2台機器,一台做kickstart服務器,一台做客戶端

服務器系統為CentOS 6.3 X86_64, 安裝光盤為CentOS 6.3 X86_64 DVD

網卡全部配置為“內部網絡”

首先,需要用到的服務有,dhcpd, httpd, xinetd, tftp, 用yum 依次安裝。

vim /etc/xinetd.d/tftp 修改tftp的守護進程配置文件,紅色部分為修改的地方,

service tftp  
{  
        disable                 = no  
        socket_type             = dgram  
        protocol                = udp  
        wait                    = yes  
        user                    = root  
        server                  = /usr/sbin/in.tftpd  
        server_args             = -u nobody -s /tftpboot  
        per_source              = 11  
        cps                     = 100 2  
        flags                   = IPv4  
}

vim /etc/dhcp/dhcpd.conf 修改dhcp配置文件

ddns-update-style interim; 
     
allow booting; 
allow bootp; 
ignore client-updates; 
set vendorclass = option vendor-class-identifier; 
subnet 192.168.0.0 netmask 255.255.255.0 { 
     option routers          192.168.0.1; 
     option subnet-mask         255.255.255.0; 
     range dynamic-bootp        192.168.0.10 192.168.0.50; 
     filename                "/pxelinux.0"; 
     default-lease-time         21600; 
     max-lease-time             43200; 
     next-server           192.168.0.1; 
}

   簡單介紹:  
    Option routers指定網關;    
    Option domain-name-server指定DNS服務器;      
    Option subnet-mask指定掩碼;      
    range dynamic-bootp指定分配給客戶端的IP地址段;      
    Filename 指定啟動鏡像;      
    Next-server 指定TFTP服務器。

服務器的網卡ifcfg-eth0配置為靜態IP:192.168.0.1, 子網掩碼255.255.255.0, 網關192.168.0.1

設置開機啟動服務,
chkconfig xinetd on
chkconfig dhcpd on
chkconfig httpd on

依次啟動服務
service xinetd start
service dhcpd start
service httpd start

注意要關掉防火牆,selinux 設為permissive, 不然會導致PXE加載失敗

掛載linux安裝盤, mkdir -p /mnt/iso,  mount -o loop /dev/dvd /mnt/iso,
cp /mnt/iso/* /var/www/html, 將光盤內容全部復制到html根目錄(采用httpd方式安裝),
創建目錄/tftpboot, 將Linux安裝程序的內核、根文件系統文件及其他文件復制到tftp的根目錄中,

羅列下/tftpboot目錄下大概會用到的文件,
initrd.img (文件,從光盤/mnt/iso/isolinux/目錄拷貝)
pxelinux.0(文件,從/usr/share/syslinux目錄拷貝,若無,則須安裝syslinux)
pxelinux.cfg(目錄,自建,裡面存放名為default的文件,該文件從/mnt/iso/isolinux/isolinux.cfg復制並改名為default)
vmlinuz (文件,從/mnt/iso/isolinux/目錄拷貝)
vesamenu.c32(文件,從/mnt/iso/isolinux/目錄拷貝)

注意權限,chmod +x /tftpboot/pxelinux.cfg/default

若要圖形化配置kickstart, 則需安裝system-config-kickstart,圖形化操作較簡便,未詳述,
若要文本配置kickstart,則要配置ks.cfg文件,
復制/root/anaconda-ks.cfg文件方式:Red Hat操作系統,在系統安裝完成後,會自動在root家目錄下創建一個anaconda-ks.cfg文件,這個文件真實的記錄了系統安裝過程中的配置。我們可以復制這個文件,然後在其基礎上進行配置
cp anaconda-ks.cfg /var/ww/html/ks.cfg
chmod +r /var/www/html/ks.cfg

【ks.cfg配置文件的內容】

# Kickstart file automatically generated by anaconda.       
#version=DEVEL      
Install             
url --url=http://192.168.0.1/ 
lang en_US.UTF-8    
keyboard us    
text    
key –skip     #紅帽的序列號,如果有則寫,沒有則跳過。注:有些版本的系統會忽略這個,而有些則需要你明確定義跳過該步驟。 否則會影響自動化安裝。    
network –bootproto=dhcp --device=eth0   --onboot=on      
rootpw  --iscrypted $1$AbMG5lMV$wpNs2yKuFbz4iev/  #為root用戶設密碼,明文也行。     
# Reboot after installation       
reboot    
firewall --disabled       
authconfig --useshadow  --passalgo=sha512       
selinux --disabled    
timezone Asia/Shanghai       
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 /boot --fstype=ext4 --size=500       
part swap  --size=2048       
part /     --fstype=ext4 --grow --size=2     #--grow表示將剩余的所有磁盤空間分配給根分區    
       
      
#邏輯卷分區創建實例    
        
part /boot –fstype=ext4 –size=500        #因為系統啟動時無法識別lvm分區表,所以需要為/boot單獨分區。      
part pv.01 --grow --size=1       
volgroup vg0 pv.01    
logvol swap       --fstype=swap  --name=swap   --vgname=vg0  --size=1024    
logvol /          --fstype=ext4  --name=root   --vgname=vg0  --size=5120       
logvol /tmp       --fstype=ext4  --name=tmp    --vgname=vg0  --size=5120       
logvol /home      --fstype=ext4  --name=home   --vgname=vg0  --size=5120    
logvol /usr/local --fstype=ext4  --name=local  --vgname=vg0  --size=10240    
         
%packages     
@Base    
@Core     
@base 
@client-mgmt-tools    
@debugging     
@emacs    
@ftp-server     
@hardware-monitoring    
@large-systems    
@network-file-system-client    
            
%end

最後再在pxelinux.0的配置文件/tftpboot/pxelinux.cfg/default文件中指定kickstart文件即可。編輯/tftpboot/pxelinux.cfg/defalut文件,修改的內容我用紅色進行標記,

timeout 30 
label linux   
  menu label ^Install or upgrade an existing system  
  menu default
  kernel vmlinuz   
  append initrdinitrd=initrd.img ks=http://192.168.0.1/ks.cfg

配置完畢後,測試客戶端PXE啟動,成功引導並加載鏡像自動安裝!

 

Copyright © Linux教程網 All Rights Reserved