kickstart自動化安裝

請參考

http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html

PXE(Pre-boot Execution Environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。

嚴格來說,PXE 並不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE 協議可以使計算機通過網絡啓動。此協議分爲 Client端和 Server 端,而PXE Client則在網卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入內存中執行,然後由 PXE Client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那麼它就可以通過 TFTP 協議到 TFTP Server 上下載所需的文件了。

PXE的工作過程:

1. PXE Client 從自己的PXE網卡啓動,向本網絡中的DHCP服務器索取IP;

2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務器上) ;

3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;

4. PXE Client 取得pxelinux.0 文件後之執行該文件;

5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統 ;

6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝;

詳細工作流程,請參考下面這幅圖:

yuanli

 什麼是Kickstart

Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,並生成一個名爲ks.cfg的文件。如果在安裝過程中(不只侷限於生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到合適的參數,就採用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那麼安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然後就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啓系統,並結束安裝。

PXE+Kickstart 無人值守安裝操作系統完整過程如下:

kickstart


1 安裝dhcp  tftp

a 安裝

[root@bogon common]# yum -y install dhcp* tftp*

tftp非獨立啓動的進程,獨立啓動就是有自己的進程

非獨立啓動服務就是要藉助於其它的進程,依賴於/etc/init.d/xinetd

/etc/init.d/xinetd  -管理非獨立啓動服務

[root@bogon common]# vi /etc/xinetd.d/tftp

disable = no   //修改爲no

就是啓動了tftp

b 啓動

 Centos7.2中沒有xinetd

[root@bogon common]# yum -y install xinetd

[root@bogon init.d]# service xinetd start

2 TFTP+PXE配置

a 要實現遠程安裝系統,首先需要在TFTPBOOT目錄指定相關PXE內核模塊及相關參數。

配置步驟如下:

查看

[root@bogon init.d]# more /etc/xinetd.d/tftp

server_args = -s /var/lib/tftpboot

鏈接到根目錄下:

[root@bogon init.d]# ln -s /var/lib/tftpboot /

[root@bogon init.d]# cd /tftpboot/

[root@bogon tftpboot]# pwd

/tftpboo

b 掛載光盤

[root@bogon tftpboot]# mount /dev/cdrom /mnt

mount: /dev/sr0 寫保護,將以只讀方式掛載

[root@bogon tftpboot]# df -h

文件系統                 容量  已用  可用 已用% 掛載點

/dev/mapper/centos-root   18G  3.1G   15G   18% /

devtmpfs                 479M     0  479M    0% /dev

tmpfs                    489M     0  489M    0% /dev/shm

tmpfs                    489M  6.8M  483M    2% /run

tmpfs                    489M     0  489M    0% /sys/fs/cgroup

/dev/sda1                497M  125M  373M   25% /boot

tmpfs                     98M     0   98M    0% /run/user/0

/dev/sr0                 3.4G  3.4G     0  100% /mnt

c 找到pxlinux.0 服務端引導文件

[root@bogon tftpboot]# find / -name pxelinux.0

[root@bogon tftpboot]# yum -y install syslinux syslinux-devel  //找不到yum安裝一下

[root@bogon tftpboot]# find / -name pxelinux.0

/usr/share/syslinux/pxelinux.0

[root@bogon tftpboot]# cp /usr/share/syslinux/pxelinux.0 .    //將此文件copy到tftpboot目錄下

[root@bogon tftpboot]# ls

pxelinux.0

[root@bogon tftpboot]# pwd

/tftpboot

[root@bogon tftpboot]# cp /mnt/images/pxeboot/vmlinuz .     

[root@bogon tftpboot]# cp /mnt/images/pxeboot/initrd.img .

//拷貝內核至tftpboot目錄下,系統開機會查找這兩個文件

[root@bogon tftpboot]# mkdir pxelinux.cfg

[root@bogon tftpboot]# cd pxelinux.cfg/

[root@bogon pxelinux.cfg]# pwd

/tftpboot/pxelinux.cfg

[root@bogon pxelinux.cfg]# cp /mnt/isolinux/isolinux.cfg default

[root@bogon pxelinux.cfg]# ls

default

//爲菜單引導文件,拷貝isolinux.cfg配置文件重命名,系統安裝的時候會根據這個文件的配置啓動相應的選項。

注:爲了方便,未使用它們的default文件,自己創建,如下

[root@bogon pxelinux.cfg]# more default 

default linux

prompt 1

timeout 10

display boot.msg

#######

label linux

kernel vmlinuz

append ks=nfs:192.168.57.132:/data/centosinstall/ks.cfg  ksdevice=eth0 initrd=initrd.

img     //注意修改本機ip和共享目錄

########

label text

kernel vmlinuz

append initrd=initrd.img text

label ks

kernel vmlinuz

append ks initrd=initrd.img

label local

localboot 1

label memtest86

kernel memtest

append –

d 新建centosinstall並將鏡像的所有文件都拷貝到這個目錄下,並用nfs方式共享這個文件,供遠程客戶端來訪問

[root@bogon data]# mkdir centosinstall

[root@bogon data]# cd centosinstall/

[root@bogon centosinstall]# pwd

/data/centosinstall

[root@bogon centosinstall]# cp /mnt/* . -a

[root@bogon centosinstall]# more /etc/exports   //共享這個文件

/data/centosinstall  *(insecure,rw,sync)

[root@bogon centosinstall]# service nfs restart

Redirecting to /bin/systemctl restart  nfs.service

e ks.cfg文件定義

[root@bogon centosinstall]# pwd

/data/centosinstall

[root@bogon centosinstall]# more ks.cfg 

# Kickstart file automatically generated by anaconda.

install

text

nfs --server=192.168.57.132 --dir=/data/centosinstall

key --skip

lang zh_CN.UTF-8

keyboard us

network --device eth0 --bootproto=dhcp --noipv6

rootpw 123456

firewall --disabled

authconfig --enableshadow --enablemd5

selinux --disabled

timezone Asia/Shanghai

bootloader --location=mbr --driveorder=sda --append="rhgb quiet"

clearpart --all --initlabel

part /boot --fstype ext3 --size=200

part swap --size=4000

part / --fstype ext3 --size=80000

part /data --fstype ext3 --size=200 --grow

reboot

%packages

@base

@core

@chinese-support

[root@bogon centosinstall]# chmod 777 ks.cfg


PS:ks.cfg名字的由來,anaconda-ks.cfg本機系統配置文件,記錄系統的安裝過程,如果不知道怎麼寫,仿照

[root@bogon centosinstall]# cd /root/

[root@bogon ~]# ll anaconda-ks.cfg 

-rw-------. 1 root root 958 9月  22 17:08 anaconda-ks.cfg


3 dhcp配置

dhcpd.conf文件

[root@bogon centosinstall]# more /etc/dhcp/dhcpd.conf     

ddns-update-style interim;

ignore client-updates;   //忽略更新

next-server 192.168.57.132;  //告知dns服務器ip

filename "pxelinux.0";   //查找pxelinux.0這個文件

allow booting;           //允許啓動

allow bootp;

subnet 192.168.57.0 netmask 255.255.255.0 {

# --- default gateway

option routers          192.168.57.1;

option subnet-mask      255.255.255.0;

range dynamic-bootp 192.168.57.100 192.168.57.200;  //注意要在同一個網段

default-lease-time 21600; 

        max-lease-time 43200;

}


到這就算配置完畢了

注意:selinux和防火牆要關掉



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章