pxe自動化安裝系統

pxe自動化安裝系統

pxe自動化安裝,所需要的服務有:dhcp服務器,tftp服務器,http服務器
pxe自動化安裝,所需要的包組及相關安裝文件有:syslinux以及自動化安裝系統所需的應答文件selinux

實驗說明

本次實驗以一臺CentOS7作爲dhcp服務器,tftp服務器,以及http服務器向本網段內的主機提供自動化安裝

實驗準備

主機 系統 IP
CentOS7 CentOS7 192.168.73.120

一、安裝dhcp服務、tftp-server服務、httpd服務及syslinux包組

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

二、創建應答文件

1.使用system-config-kickstart生成ks6.cfg

[root@centos7 ~]# system-config-kickstart
[root@centos7 ~]# vim ks6.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.73.120/centos/6/os/x86_64"
# Root password
rootpw --iscrypted $1$6oVXZR1R$QOASc6inirmHCZmQ.W9Hg0
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=20000
part swap --fstype="swap" --size=1024

%packages
@core

%end

2.複製ks6.cfg爲ks7.cfg,並修改部分參數

[root@centos7 ~]# cp ks6.cfg ks7.cfg
[root@centos7 ~]# vim ks7.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.73.120/centos/7/os/x86_64"    #將url改爲7的url
# Root password
rootpw --iscrypted $1$6oVXZR1R$QOASc6inirmHCZmQ.W9Hg0
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=ens33 --onboot=on      #將網卡名修改爲ens33
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=20000
part swap --fstype="swap" --size=1024

%packages
@core

%end

三、配置httpd服務

1.創建http目錄

[root@centos7 ~]# mkdir -pv /var/www/html/{centos/{6,7}/os/x86_64,ksdir}
mkdir: created directory ‘/var/www/html/centos’
mkdir: created directory ‘/var/www/html/centos/6’
mkdir: created directory ‘/var/www/html/centos/6/os’
mkdir: created directory ‘/var/www/html/centos/6/os/x86_64’
mkdir: created directory ‘/var/www/html/centos/7’
mkdir: created directory ‘/var/www/html/centos/7/os’
mkdir: created directory ‘/var/www/html/centos/7/os/x86_64’
mkdir: created directory ‘/var/www/html/ksdir’

2.將CentOS6及7的光盤文件掛在至相關的目錄下(工作中可以直接將光盤鏡像複製至目錄下)

[root@centos7 ~]# lsblk | grep sr
sr0     11:0    1   10G  0 rom  /mnt
sr1     11:1    1  3.7G  0 rom  
[root@centos7 ~]# mount /dev/sr0 /var/www/html/centos/7/os/x86_64/
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7 ~]# mount /dev/sr1 /var/www/html/centos/6/os/x86_64/
mount: /dev/sr1 is write-protected, mounting read-only
[root@centos7 ~]# lsblk | grep sr
sr0     11:0    1   10G  0 rom  /var/www/html/centos/7/os/x86_64
sr1     11:1    1  3.7G  0 rom  /var/www/html/centos/6/os/x86_64

3.將準備好的應答文件複製至目錄下

[root@centos7 ~]# cp ks6.cfg /var/www/html/ksdir
[root@centos7 ~]# cp ks7.cfg /var/www/html/ksdir

4.啓動httpd服務,並設置爲開機自動啓動

[root@centos7 ~]# systemctl start httpd
[root@centos7 ~]# systemctl enable httpd

四、配置tftp服務器

1.在tftp工作目錄下創建出相關的文件目錄

[root@centos7 ~]# mkdir -pv /var/lib/tftpboot/{kernel{6,7},pxelinux.cfg}
mkdir: created directory ‘/var/lib/tftpboot/kernel6’
mkdir: created directory ‘/var/lib/tftpboot/kernel7’
mkdir: created directory ‘/var/lib/tftpboot/pxelinux.cfg’

2.將centos6和centos7的內核及虛擬文件系統複製至tftp工作目錄下的相對應kernel目錄中

[root@centos7 tftpboot]# cd /var/lib/tftpboot/kernel6
[root@centos7 kernel6]# cp /var/www/html/centos/6/os/x86_64/isolinux/vmlinuz .
[root@centos7 kernel6]# cp /var/www/html/centos/6/os/x86_64/isolinux/initrd.img .
[root@centos7 kernel6]# cd /var/lib/tftpboot/kernel7
[root@centos7 kernel7]# cp /var/www/html/centos/7/os/x86_64/isolinux/vmlinuz .
[root@centos7 kernel7]# cp /var/www/html/centos/7/os/x86_64/isolinux/initrd.img .

3.複製啓動相關的文件至tftp工作目錄

[root@centos7 kernel7]# cd /var/lib/tftpboot/
[root@centos7 tftpboot]# cp /usr/share/syslinux/menu.c32 .
[root@centos7 tftpboot]# cp /usr/share/syslinux/pxelinux.0 .

4.複製光盤上的菜單文件至/var/lib/tftpboot/pxelinux.cfg目錄下改名爲default,修改此文件

[root@centos7 tftpboot]# cp /var/www/html/centos/7/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@centos7 tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32            #將此行改爲menu.c32
timeout 600

menu title CentOS install

label linux 6
  menu label Install CentOS ^6
  kernel kernel6/vmlinuz    #此處爲centos6內核所在的路徑
  append initrd=kernel6/initrd.img ks=http://192.168.73.120/ksdir/ks6.cfg               #指定KS文件在網絡中的位置

label linux 7
  menu label Install CentOS ^7
  kernel kernel7/vmlinuz    #此處爲centos7內核所在的路徑
  append initrd=kernel7/initrd.img ks=http://192.168.73.120/ksdir/ks7.cfg               #指定KS文件在網路中的位置

label local
  menu label Boot from ^local drive
  localboot 0xffff

5.查看下目錄結構

[root@centos7 tftpboot]#tree
.
├── centos6
│   ├── initrd.img
│   └── vmlinuz
├── centos7
│   ├── initrd.img
│   └── vmlinuz
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
    └── default

6.啓動tftp服務,並設置爲開機啓動

[root@centos7 ~]# systemctl start tftp
[root@centos7 ~]# systemctl enable tftp

五、配置dhcp服務

1.由於dhcpd默認的配置文件爲空,此處將dhcpd的樣板配置文件複製後加以修改

[root@centos7 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y

2.配置dhcp服務

[root@centos7 ~]# vim /etc/dhcp/dhcpd.conf
# option definitions common to all supported networks...
option domain-name "mylinuxops.com";                #指定預添加域名
option domain-name-servers 114.114.114.114;         #指定DNS服務器

default-lease-time 6000;
max-lease-time 72000;

...中間省略...

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {    #註釋
#}                                              #註釋

# This is a very basic subnet declaration.

subnet 192.168.73.0 netmask 255.255.255.224 {
  range 192.168.73.1 192.168.73.100;        #指定dhcp地址池
  option routers 192.168.73.254;            #指定網關
  filename "pxelinux.0";                    #指定啓動文件
  next-server 192.168.73.120;               #指定tftp服務器路徑
}

3.啓動dhcp服務器,並設置爲開機自動啓動

[root@centos7 ~]# systemctl start dhcpd
[root@centos7 ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

注意:

1.所有服務部署完畢,進行測試之前,確保網絡中沒有其他的DHCP服務,避免產生干擾。
2.centos7在自動化安裝時需要1G以上的內存空間。
3.安裝時注意物理磁盤的大小以及ks文件中的磁盤大小 ,確保有足夠的空間進行安裝。

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