; -pxe | Linux运维部落

-pxe

一. BootStraping(OS install):
1. pxe:preboot excution environment ,
预启动执行环境,由intel开发,可实现无人值守自动安装操作系统
( 依赖于dhcp (dhcpd )服务器与 ftp(lftp) 服务器)
2. pxe 自动化系统安装的流程:
1. client 从pxe网卡模式启动, 并向dhcp服务获取ip地址,
此时dhcp服务会设置next_server 地址以及 filename (pxelinux.0)
告知client 前往指定ftp服务器(常为lftp琐碎文件服务器)获取pxelinux.0 即pxe的启动引
导文件
2. client获取到pxelinux.0,在本地执行,pxe启动后,提供安装选择界面(菜单),
3. 在选择对应安装项目后, 会根据配置文件,前往指定的ftp ,获取系统内核文件vmlinuz,以及
伪文件系统inintrd.img,在本地加载内核与伪文件系统
4. 后再根据配置文件,前往指定的ftp服务器,加载指导系统安装的kickstart配置文件,
根据kickstart文件,定制系统各项参数,并自动安装
3.流程以及涉及的文件详解:
1. dhcp: 常用dchpd , 安装,配置dchpd,同时加入next-server, filename ,并启动
2. ftp: 常用lftp 琐碎文件服务器,安装,配置lftp,并从光盘中,拷贝相应的内核文件,伪文件系统
镜像到lftp的共享文件夹中
文件列表:(需要先安装syslinux, 以提供pxelinux.0文件)
centos 6:
/usr/share/syslinux/pxelinux.0 #pxe启动引导文件
/media/cdrom/images/pxeboot/{vmlinuz,initrd.img}
#系统内核文件
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}
#提供与cdrom安装时一样的界面(菜单)文件
#此项也可以使用pxe的菜单界面文件,按需选择
/media/cdrom/isolinux/isolinux.cfg #pxe界面配置文件
centos 7: (与6的安装配置相似)
/usr/share/syslinux/pxelinux.0
/media/cdrom/images/pxeboot/{vmlinuz,initrd.img}
/usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}
#此处使用的是pxe自身的菜单界面文件
==========================================================
二. tftp server:
#lftp的配置相对简单,只要安装,并将共享的文件放入指定目录,启动lftp服务即可
监听: 69/udp
安装与配置:
# yum install tftp-server tftp
启动:
CentOS 7:
systemctl start tftp.socket
CentOS 6:
chkconfig tftp on
service xinetd restart
#由xinetd托管监听
默认的文件根目录:
/var/lib/tftpboot/
============================================================
三.配置PXE环境:
1. CentOS 7:
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#将pxe启动引导文件内放入lftp共享文件夹
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
##将内核文件内放入lftp共享文件夹
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot
##将pxe菜单界面文件内放入lftp共享文件夹cd
mkdir /var/lib/tftpboot/pxelinux.cfg/
#创建pxe配置文件的目录
———————————————————————————-
#修改启动菜单配置
#注意:centos 7中,此文件默认不存在, 可自行创建
vim /var/lib/tftpboot/pxelinux.cfg/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.10.9/centos/7/x86_64 #指定yum仓库
LABEL linux_autoinst
MENU LABEL Install CentOS 7 x86_64 auto
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://192.168.10.9/centos/7/x86_64 ks=http://192.168.10.9/kickstarts/centos7.cfg
#指定kickstart 文件以及yum仓库地址
效果示例:
———————————————————————————
2. CentOS 6:
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}
/var/lib/tftpboot/
#此处从光盘中拷贝光盘启动安装的界面文件,以提供在pxe环境下,实现
与光盘安装时一样的界面,
#也可使用pxe的安装界面文件,安秀选择
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#拷贝光盘安装界面的配置文件
内容如下所示:
display boot.msg
#界面配置:
menu background splash.jpg
menu title Welcome to CentOS 6.7 MageEdu!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
#各可选的启动项
label autoinst #自动化安装项
menu label ^Auto Install CentOS
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg
#指定kickstart文件,实现自动化加载配置
label linux #光盘安装
menu label ^Install or upgrade an existing system
kernel vmlinuz
append initrd=initrd.img
label vesa #
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img nomodeset
label rescue #救援模式
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local #单用户模式
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append –
效果示例:
============================================================
四.dhcpd
1. DHCP:Dynamic Host Configuration Protocol
arp –> address resolving Protocol
IP –> MAC
rarp –> reverse arp
MAC –> IP
bootp –> boot protocol
dhcp: lease time, bootp
2. 工作流程:广播
(1) Client:dhcp discover (广播方式寻找dhcp服务端)
(2) Server: dhcp offer(IP/Netmask, GW, DNS Server, NTP Server, Wins Server, …)
(3) Client:dhcp request
(4) Server:dhcp ack
3. lease time:IP租约期限;
续租:50%, 75%, 87.5%, 93.75%
续租过程:
1. dhcp request
2. dhcp ack|nak
4. 实现:
dhcp :
(isc.org) – The dhcp package provides the ISC DHCP service and relay agent.
dnsmasq:
(dns, dhcp) – Dnsmasq is lightweight, easy to configure DNS forwarder
and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a
small network.
5. 程序环境:
安装:
yum install dhcp
dhcp server:
/usr/sbin/dhcpd
IPV4网络配置:
/etc/dhcp/dhcpd.conf
/usr/lib/systemd/system/dhcpd.service
IPV6网络配置:
/etc/dhcp/dhcpd6.conf
/usr/lib/systemd/system/dhcpd6.service
dhcrelay: #dhcp中继代理,用于实现跨网段的dhcp服务
/usr/sbin/dhcrelay
/usr/lib/systemd/system/dhcrelay.service
监听的地址和端口:
Server: 67/udp
Client: 68/udp
6. 配置文件:/etc/dhcp/dhcpd.conf 详解:
默认情况下,/etc/dhcp/dhcpd.conf 文件为空,
可将/usr/share/doc/dhcp-###/dhcpd.conf.sample 模板复制使用
配置指令:
option选项:配置给客户端的相信息
指令:定义dhcp server的工作特性
配置有级别之分:
全局配置
子网配置
主机配置
常用的配置:
default-lease-time 600; #默认租约期限
max-lease-time 7200;  #最长租约期限
option domain-name “search_domain.tld”; #搜索域定义
option domain-name-servers DNS_SERVER1, DNS_SERVER2, DNS_SERVER3;
#全局DNS服务器
option routers GW1, GW2, …;
#全局默认网关
option broadcast-address BROADCAST_ADDRESS;
#全局子网掩码
#子网范围:
subnet NETWORK netmask MASK {
range START_IP END_IP;
#eg:
# range 10.254.239.10 10.254.239.20;
}
# 定义网络作用域,即一个子网,主要用于指明地址池;
#静态ip主机定义
host client_name {
hardware ethernet client_mac; #client端的mac
fixed-address IP_ADDR; #指定的IP
}
其它指令:
filename:指明引导文件名称;
next-server IP:指明引导文件所在的服务器的主机IP;
filename “pxelinux.0″;
配置实例:(dhcpd仅有下列项即可,其他项为可选)
#注意: dhcp服务器,需要手动给定地址,
#dhcp服务器地址已经设置为192.168.1.1
option domain-name “test.org”; #搜索域定义
option domain-name-servers 192.168.1.1;
#全局DNS服务器
option routers 192.168.1.1;
#全局默认网关
option broadcast-address 255.255.255.0;
#全局子网掩码
#子网范围:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.200;
next-server 192.168.1.1;
filename “pxelinux.0”
}

原创文章,作者:ldt195175108,如若转载,请注明出处:http://www.178linux.com/59952

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班