自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統

1、概述

一、關於PXE
Preboot Execution Environment翻譯過來就是預啓動執行環境;簡稱PXE;傳統安裝操做系統的方法是CDROM或U盤引導,而PXE技術解決的是從網絡引導安裝系統,固然PXE技術不是什麼新技術了,是Intel和Microsoft在1998年定義的更大PC98規範的一部分。有關PXE規範的詳細文檔html

二、pxe引導相關角色說明
PXE做用: 引導裝機
Kickstart做用: 將安裝系統的過程當中經過ks.cfg文件中的配置信息,實現自動安裝配置達到無人值守自動安裝;
TFTP: 支持PXE 引導的網卡中從tftp服務器端下載pxelinux.0文件、vmlinuz、initrd.img等內核引導文件;
DHCP: PXE引導過程當中獲首先獲取IP地址,並提供pxelinux.0文件位置;
HTTP: 用於下載ks.cfg以及系統鏡像文件
通用的無人值守作法以下:
經過一臺沒有系統的裸機網卡支持pxe協議,開機後從dhcp服務器獲取ip和pxelinux.0文件並從tftp服務器上加載相關內核引導文件;同時下載 kickstart的cfg配置文件,指定系統鏡像文件位置加載安裝,從而實現無人值守安裝!
如圖(圖片來自於網絡):
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統
三、環境準備說明
本次測試環境說明:
PXE服務器:CentOS7.4 基於virtualboxt的虛擬機
ip:172.16.3.152 (可上網) 內部測試ip(僅主機模式) 192.168.56.254
配置服務及安裝軟件包以下:
DHCP
tftp
http
syslinux 包,提供引導文件
以上所須要的軟件包均經過yum安裝linux

[root@pxe ~]# yum install  dhcp tftp tftp-server syslinux httpd -y

防火牆,selinux關閉;生產線請開放UDP 67 68 69 tcp/80端口;redis

測試機可直接新建安裝CentOS7系統 注意的就是網絡選擇僅主機便可;後面說明
接下來就配置並測試!vim

2、基於httpd搭建本地安裝源

一、掛載光盤製做安裝源windows

##掛載CentOS7光盤
[root@pxe ~]# mkdir /media/cdrom
[root@pxe ~]# mount /dev/cdrom /media/cdrom
[root@pxe ~]# mkdir -pv /var/www/html/centos/7/x86_64
#綁定掛載到http默認目錄下
[root@pxe ~]#mount --bind /media/cdrom /var/www/html/centos/7/x86_64

二、kickstart ks.cfg配置文件準備
以家目錄下的anaconda-ks.cfg爲模板製做ks文件centos

[root@pxe ~]# cd /var/www/html;mkdir ks
[root@pxe ~]# cat ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#cdrom
# Install OS instead of upgrade
install
# Use network installation
url --url=http://192.168.56.254/centos/7/x86_64
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
#ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto
network  --hostname=localhost.pkey.cn

# Root password
rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core
kexec-tools
vim
wget
httpd
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
selinux --disabled     #禁用selinux
reboot        #安裝完重啓系統

以上是個人蔘考配置,您也能夠做爲模板只須要簡單修改如下幾行:
安裝的網絡鏡像地址:
url --url=http://192.168.56.254/centos/7/x86_64
安裝後的系統密碼:
rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1
密碼能夠經過openssl passwd -1 "PASSWORD"
生成格式是sha512的密碼替換上去便可;
另外安裝後能夠在%packages 與其%end之間配置預安裝的包等,此處讓程序在安裝好系統後預安裝wegt vim軟件包;更多好玩的配置請
請參看redhat官方文檔服務器

三、配置啓動網絡

[root@pxe ~]# systemctl start httpd
[root@pxe ~]# systemct enable httpd

3、配置DHCP服務

一、配置dhcp服務
dhcp配置文件在/etc/dhcp/目錄下,默認的配置文件沒有,但咱們能夠在幫助文件中找到模板示例文件加以修改app

[root@pxe ~]#  cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@pxe ~]# egrep -v '(^$|^#)' /etc/dhcp/dhcpd.conf
option domain-name "pkey.cn";
option domain-name-servers 192.168.56.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.56.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.56.110 192.168.56.120;
    option routers 192.168.56.1;
    next-server 192.168.56.254;    #tftp server也是本機,能夠分開
  filename "pxelinux.0";               #引導文件
}

二、啓動與查看運維

[root@pxe ~]# systemctl start dhcpd
[root@pxe ~]# systemctl enable dhcpd
查看服務狀態,已經監聽在UDP   67上
[root@pxe ~]# ss -tunl
Netid  State      Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              
udp    UNCONN     0      0                        *:55770                                *:*                  
udp    UNCONN     0      0                        *:47150                                *:*                  
udp    UNCONN     0      0                        *:67                                   *:*

4、配置tftp服務

安裝好tftp-server軟件包後 默認的數據根目錄是/var/lib/tftpboot/ 無須修改,只須要複製一些軟件引導文件進來便可
一、相關文件準備

##引導文件
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  
#內核文件
[root@pxe ~]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
#引導菜單
[root@pxe ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot
#製件引導默認文件
[root@pxe ~]# mkdir -pv /var/lib/tftpboot/pxelinux.cfg
[root@pxe pxelinux.cfg]# cat default 
default menu.c32
   prompt 5
   timeout 30
   MENU TITLE CentOS 7 PXE Menu

   LABEL linux
   MENU LABEL Install CentOS 7 x86_64
   KERNEL vmlinuz
   APPEND initrd=initrd.img inst.repo=http://192.168.56.254/centos/7/x86_64 ks=http://192.168.56.254/ks/ks.cfg

二、啓動配置開機自啓

[root@pxe tmp]# systemctl enable tftp
[root@pxe tmp]# systemctl start tftp

三、tftp測試
/var/lib/tftpboot/目錄文件結構

結構查看
[root@pxe tftpboot]# tree -L 2
.
├── chain.c32
├── initrd.img
├── mboot.c32
├── memdisk
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│   └── default
└── vmlinuz

測試tftp
[root@pxe tmp]# pwd;ls
/tmp
[root@pxe tmp]# tftp 192.168.56.254
tftp> get vmlinuz
tftp> quit
[root@pxe tmp]# pwd;ls
/tmp
vmlinuz

5、PXE無人值守安裝測試

一、修改virtualbox網絡
管理-->全局設定-->網絡-->"僅主機(Host-Only)網絡" -->雙擊vboxnet0 -->把virtualbox自帶的僅主機網絡的DHCP服務關掉,如圖:
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統

二、新建虛擬機
和用cdrom安裝虛擬的惟一區別是不用掛載鏡像,只須要修改新的虛擬機的網絡類型爲"僅主機(Host-Only)網絡"如圖:
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統

開機-->按F12選擇LAN啓動,如圖:
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統
再接下來就是很熟悉的圖形化自動安裝的過程了!整個安裝系統的過程 基本上也就五六分鐘的樣子,具體視安裝包多少與系統網絡性能而定;想了解具體過程,自行動手試試吧!

總結:

以上就是基於PXE協議和syslinux引導文件,kickstart配置文件,DHCP,tftp-server,httpd服務製做本地安裝源協做完成的無人值守安裝系統,也能夠在這套環境 中加入CentOS6的安裝,只須要添加修改配置文件便可,這種操做通常就要用到cobbler服務去更好的解決啦!本次在windows上用vmware也是相似操做!

相關文章
相關標籤/搜索