PXE服务器~学习记录

在了解公司项目的时候,对PXE(预启动执行环境)不是很了解,遂在Google上搜索,被大神“黑洞的来客”的文章所吸引,一路看下去,发现解决了自己对于公司项目中的好多疑问,于是,将此文章内容剪切到自己的博客中,以做记录。

查看大神的博客:http://jackcui.blog.51cto.com/,很多技术文章,写的很好,对自己都有帮助。

再次感谢大神“黑洞的来客”。http://blog.51cto.com/jackcui/1892740 擅自转载,多多包涵。

下面的内容不是很全面,都是自己对于理解项目中的记录,查看全文还请看原创文章

关于PXE的网络安装https://blog.csdn.net/trochiluses/article/details/11736119

一、PXE服务器简介:

  PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。在Linux中有多种的安装方式:HD、USB、CDROM、PXE及远程管理卡等。在我们的系统运维的生涯中,经常要安装操作系统,然而我们维护的机器不是一两台而已,一般的企业服务器数量都在几十、几百、几千、甚至上万台。这么多的机器,如果人工的一台一台去安装,那我们这些运维人员,可能要把大部分时间都花费在了安装系统上,所以,我们一般都会建立一个PXE服务器,通过网络来批量部署系统。

二、无人值守部署系统安装系统流程

1.部署PXE需要的环境:

  首先在pxe服务器端需要有一个DHCP服务器,需要有tftp服务器和一个文件服务器,其中文件服务器可以是ftp,http,nfs等文件服务器,如果服务器性能好或者流量不是太大,这些服务器完全可以放在一台服务器上面。当然pxe启动需要网卡支持这样的功能,好在现在的绝大部分的网卡已经支持这样的功能了!

2.PXE部署系统自动化安装流程

(1)    设置拥有pex功能的客户端主机开机启动项为网络启动,一般默认都此选项,如果没有可自行设置bios启动项

(2)    客户端开机之后进入网络启动,此时客户端没有IP地址需要发送广播报文(pxe网卡内置dhcp客户端程序),dhcp服务器相应客户端请求,分配给客户端相应的IP地址与掩码等信息

(3)    客户端得到IP地址之后,与tftp通信,下载pxelinux.0,default文件,根据default指定的vmlinuz,initrd.img启动系统内核,并下载指定的ks.cfg文件

(4)    根据ks.cfg文件去文件共享服务器(http/ftp/nfs)上面下载RPM包开始安装系统,注意此时的文件服务器是提供yum服务器的功能的。

三、部署各服务器

1.tftp服务的安装:

tftp的服务器需要安装tftp-server包,tftp工作在udp 69号端口在启动服务稍有不同,在CentOS7需要启动tftpd.socket ,而在CentOS6的版本中需要保证服务开机启用,并且重新启动xinetd,因为在CentOS7是将所有进程托管给systemd进程,只需启动tftp.socket,打开监听的端口套接字即可,而在CentOS6中则是将不常用的服务统一托管给了xinetd进程,由xinetd进程统一进行管理,所以重启xinetd即可tftp-server默认没有配置文件,直接启用服务,就可以使用(当然可以手动建立,但是没有必要)

2. DHCP服务器安装配置:

DHCP使用udp的67号端口,使用ss -unl 可以查看到监听的67号端口。

3.ks.cfg文件的生成:

Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持 Kickstart等脚本提供自动安装的功能。该程序的功能是把位于光盘或其他源上的数据包,根据设置安装到主机上。为实现该定制安装,它提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息)。

(1)Anaconda支持的管理模式: 
    (a)Kickstart提供的自动化安装;  
    (b)对一个RedHat实施upgrade; 
    (c)Rescuse模式对不能启动的系统进行故障排除。

要进入安装步骤,需要先有一个引导程序引导启动一个特殊的Linux安装环境系统;

2)引导有多种方式: 
    (a)基于网络方式的小型引导镜像,需要提供小型的引导镜像; 
    (b)U盘引导,通过可引导存储介质中的小型引导镜像启动安装过程;  
    (c)基于PXE的网络安装方式,要提供PXE的完整安装环境; 
    (d)其他bootloder引导(如GRUB)。 
   注: 可用的安装方式:本地CDROM、硬盘驱动器、网络方式(NFS、FTP、HTTP)

(3)配置文件如下:其中以#开头的行是注释行,其它部分开头是%开头,%end结尾。%%packages是系统要安装的包,@开头是软件包组,@^是环境包组开头以-开头是排除在外的包名或组名,除非必须的依赖性包则会安装,否则不会安装。%pre,%%post是脚本,%pre是在任何磁盘分区之前进行,%%post是在系统安装之后进行的系统配置。

[root@cnode6_8 ~]# cat /home/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enabled --ssh --smtp
# Install OS instead of upgrade
install
# Use network installation
#url指定安装介质的位置
url --url="http://10.1.0.1/cobbler/ks_mirror/6/"
# Root password
rootpw --iscrypted $1$4iJ7qwfa$k2nSEdCRXQ1xhXymknch.1
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
#强制指定使用文本安装
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# 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 
# Disk partitioning information
part /boot --fstype="ext4" --ondisk=hda --size=300
part / --fstype="ext4" --ondisk=hda --size=100000
part /home --fstype="ext4" --ondisk=hda --size=50000
#执行脚本开始
%post
cat >> /etc/yum.repos.d/local2.repo << eof
[base]
name=base repo
baseurl=file:///mnt/cdrom/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
eof
%end
 
%packages
@backup-client
@base
@basic-desktop
@compat-libraries
@console-internet
@debugging
@desktop-platform
@directory-client
@fonts
@general-desktop
@hardware-monitoring
@infiniband
@input-methods
@internet-browser
@java-platform
@large-systems
@legacy-unix
@mainframe-access
@network-file-system-client
@network-tools
@performance
@perl-runtime
@print-client
@ruby-runtime
@security-tools
@storage-client-fcoe
@x11
 
%end

4.ftp服务器安装配置:

  ftp可以进行许多安全方面的配置,但是在做一个内网的服务没有必要做许多安全方面的配置,只需要保证能正常使用即可,ftp的默认文件共享路径为:/var/ftp/pub/如需要共享文件,只需放在该目录即可,安装系统可以直接将光盘挂载至该共享文件的一个子目录即可。

5.复制相关需要的内核或其它文件:

注释:

(1)    initrd.img该文件可以在内存当中模拟文件系统

(2)    vmlinuz则是一个缩减版的内核文件拥有一些基本的网络功能,可以控制客户端进行下一步的从文件共享系统中下载真正的内核文件和驱动文件,最后真正的内核文件解压进行接管上一个内核,开始进行软件包的真正安装等任务。

(3)    Pxelinux.0文件它可以解释default文件中的每个配置项,并根据配置项做出不同的反应。如等待的时间、启动器背景、启动菜单、内核引导等等。

(4)    pxelinux.cfg目录,pxelinux被执行后,它会扫描该目录下是否存在指定的配置文件,如果存在,则引用被制定的配置文件。 

(5)    Default文件存放于pxelinux.cfg目录中,pxelinux程序最后扫描的配置文件名就是default

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值