天天看點

PXE+kickstart自動化安裝centos7

1. 理論部分

1) pxe簡介

PXE (preboot execute environment ,預啟動執行環境)工作于 Client/Server 的網絡模式,支援工作站通過網絡從遠端伺服器下載下傳映像,并由此支援通過網絡啟動作業系統

2) 工作流程

1)PXE Client 從自己的網卡啟動,向本網絡中的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 方式之一進行安裝;
           

3) kickstart簡介

  • Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工幹預填寫的各種參數,并生成一個名為ks.cfg的檔案。如果在安裝過程中(不隻局限于生成Kickstart安裝檔案的機器)出現要填寫參數的情況,安裝程式首先會去查找Kickstart生成的檔案,如果找到合适的參數,就采用所找到的參數;如果沒有找到合适的參數,便需要安裝者手工幹預了。是以,如果Kickstart檔案涵蓋了安裝過程中可能出現的所有需要填寫的參數,那麼安裝者完全可以隻告訴安裝程式從何處取ks.cfg檔案,然後就去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中的設定重新開機系統,并結束安裝。
  • 目的是為了 減少系統安裝的過程中的人機互動,提高安裝效率
PXE+kickstart自動化安裝centos7

2. 環境

本次操作使用VMware虛拟機進行操作,點選編輯-網絡編輯器,先添加一個網卡,類型為僅主機,取消使用主控端的dhcp

PXE+kickstart自動化安裝centos7

pxe伺服器

PXE伺服器建議使用固定IP

TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR="192.168.1.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.10"
           

pxe客戶機

點選建立虛拟機,配置好之後 直接啟動 注意 客戶機和伺服器要使用同一種網絡連接配接方式 否則無法通過pxe進行系統安裝

3. 需求

  • syslinux,提供pxelinux.0
  • dhcp-server,為客戶機提供IP
  • tftp-server,為客戶機提供簡單檔案傳輸(如傳輸pxelinux.0等)
  • vsftpd,提供repo的系統檔案服務
  • CentOS 7(安裝CD光牒

4. 安裝和配置

pxe伺服器

伺服器配置本地yum

[[email protected] ~]# cat /etc/yum.repos.d/development.repo 
[development]
name=base
baseurl=file:///mount
enabled=1
gpgcheck=0

           
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# yum -y install tftp-server vsftpd syslinux dhcp xinetd
[[email protected] ~]# mount /dev/cdrom /mount

#關于ftp
[[email protected] ~]# mkdir -p /var/ftp/centos
[[email protected] ~]# mount --bind /mnt /var/ftp/centos/  #vsftpd不允許軟連結目錄

#關于TFTP
[[email protected] ~]# mkdir -p /tftpboot/pxelinux.cfg  #建立tftp啟動目錄
[[email protected] ~]# cp -a /mount/isolinux/* /tftpboot/
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[[email protected] ~]# cd /tftpboot/
[[email protected] tftpboot]# mv isolinux.cfg pxelinux.cfg/default
[[email protected] tftpboot]# vim pxelinux.cfg/default 
把最上邊的timeout 600 改成timeout 50  表示等待使用者5秒(這裡一個機關是1/10秒)

在所有的lable上添加以下内容 并将其下邊的預設的兩個label删除掉
label linux-kgc
menu label ^Install CentOS 7 kgc
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.10.10/ks.cfg quiet


[[email protected] pxelinux.cfg]# vim /etc/xinetd.d/tftp 
把disable的yes改為no,另外,需要更改一下目錄,如下圖所示
 13         server_args             = -s /tftpboot
 14         disable                 = no

#關于dhcp  具體修改如下圖
[[email protected] pxelinux.cfg]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[[email protected] pxelinux.cfg]# vim /etc/dhcp/dhcpd.conf 
修改預設租約時間和最大租約時間,都改大一點
ddns-update-style none;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
    option routers 192.168.1.10;
    range 192.168.1.100 192.168.1.200;
    next-server 192.168.1.10; #生命tftp伺服器ip
    filename "pxelinux.0";  #注意這裡的filename是個相對路徑,相對于 /tftpboot
}



#安裝ks
[[email protected] pxelinux.cfg]# yum -y install system-config-kickstart
桌面啟動,如下圖 設定完之後儲存在root目錄

也可以用指令啟動ks
[[email protected] tftpboot]# system-config-kickstart 

[[email protected] ~]# vim ks.cfg
尾部添加如下内容
user --name=tiechui --password=1234.com
eula --agreed
 
[[email protected] tftpboot]# cp -a /root/ks.cfg /var/ftp/ks.cfg

[[email protected] tftpboot]# chmod +r /var/ftp/ks.cfg 

           
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7
PXE+kickstart自動化安裝centos7

pxe伺服器啟動服務

[[email protected] pxelinux.cfg]# systemctl start xinetd
[[email protected] pxelinux.cfg]# systemctl start dhcpd
[[email protected] pxelinux.cfg]# systemctl start vsftpd
           

pxe用戶端操作

啟動已經配置好的需要安裝系統的虛拟機

之後就會自動化安裝 無需幹預 如下圖所示

PXE+kickstart自動化安裝centos7

ks.cfg完整内容如下

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$WD3zvKhB$H5R80Hjd/5RYPHVoqMzk./
# Use network installation
url --url="ftp://192.168.10.10/centos"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# Network information
network  --bootproto=dhcp --device=ens32
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part / --fstype="xfs" --grow --size=1

%packages
@gnome-desktop
@x11
tigervnc-server
xorg-x11-drv-keyboard
xorg-x11-drv-mouse
xorg-x11-drv-openchrome

%end
eula --agreed

           

繼續閱讀