-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仓库地址
效果示例:
-pxe
———————————————————————————
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 –
效果示例:
-pxe
============================================================
四.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

(3)
ldt195175108ldt195175108
上一篇 2016-11-18
下一篇 2016-11-18

相关推荐

  • 关于shell变量计算中单中括号与双中括号、单引号与双引号的一些看法

      单中括号是比较基本的变量计算及数值比较的方法,一般情况下已经足够使用;双中括号是扩展的数值比较方法,里面的数值计算也相对来说复杂些。这里我推荐大家平常工作中使用单中括号即可,满足日常的工作,不做运维开发的话,双括号方面涉及不多。   这里我还得提下单括号与双括号,这里也是我经常混淆的地方,其实理解了也就轻松多了。单括号是对一段比较长的…

    学员作品 2016-08-15
  • 文本处理三剑客:sed篇

    Stream EDitor, 行编辑器 Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。 工作原理: sed是一种流编辑器,如上图所示,它一次处理一行内容,将读入的那行内容送入模式空间,然后根据sed的编辑命令对其进行响应的操作,处理完成后sed默认会把模式空间中的内容打印至标准输出,如果指定了-n选项,则会禁止这种默认的打印行为…

    学员作品 2016-08-10
  • 马哥教育网络班20期+第11周博客作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 例如:     bob给alice发送一份数据:只能alice看到,不能被篡改。     bob:     首先用单向加密提取数据的特征码,然后用自己的私钥加密这个特征码并放在原有数据的后面;…

    学员作品 2016-09-15
  • Linux 用户,组和用户权限的使用

    echo -e "Hello,I am 'whoami',the system version is here,please helcheck ist  thanks! \n'lsb_release'"| mail -s 'help'root cmd1 |cmd 2 cma1 2&…

    2016-08-05
  • Selinux的基本命令及练习

    配置SELinux 相关命令:       getenforce: 获取selinux当前状态       sestatus :查看selinux状态      &nbs…

    学员作品 2016-09-19
  • sed & vim练习

    1、 删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符  2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#号 4、在/etc/fstab文件中不以#开头的行的行首增加#号 5、处理/etc/fstab路径,使用s…

    学员作品 2016-08-10