网络装机pxe服务器的配置过程

背景:

  针对于Linux运维工作中遇到的需要大批量安装Linux系统的情况,通过网络装机的方式实现无人值守安装Linux操作系统,现需要配置一台pxe服务器用于pxe批量安装Linux操作系统,本次以Centos7为例。只要将这台配置好了的服务器合同其他需要安装Linux系统的客户机连接在同一个局域网中,就可以通过网络来进行Linux系统的安装。这台服务器需要提供DHCP服务和tfpt服务以及http服务,DHCP服务主要是为了给客户机提供IP地址,而tftp服务主要是为了提供安装系统所需要的引导文件,而HTTP服务则是提供安装系统的软件包。缺一不可。

一、准备条件

1.1、关闭防火墙和selinux。

  关闭防火墙命令:

 [root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]#

  关闭selinux命令:将/etc/selinux/config中的SELINUX的值修改为“disabled”。重启生效。重启命令:reboot

  验证selinux是否关闭,命令:getenforce

 [root@localhost ~]#
[root@localhost ~]# getenforce
Disabled
[root@localhost ~]#

1.2、挂载Centos7的光盘镜像

  实验是在虚拟机上做的。挂载前需要将虚拟机的光驱和实际的Centos7的光盘镜像连接起来,这里不做介绍。

  挂载Centos7光盘镜像

  挂载命令:

 [root@localhost /]# mkdir /var/www/html/Centos7
[root@localhost /]# ls /var/www/html/
Centos7
[root@localhost /]# mount /dev/sr0 /var/www/html/Centos7/
mount: /dev/sr0 is write-protected, mounting read-only

1.3、安装DHCP、tftp、http服务

命令:

 [root@localhost yum.repos.d]# yum -y install dhcp
[root@localhost yum.repos.d]# yum -y install httpd
[root@localhost yum.repos.d]# yum -y install xinetd
[root@localhost yum.repos.d]# yum -y install tftp-server
[root@localhost yum.repos.d]#

查看是否安装http、tftp、dhcp等服务。

二、修改配置文件

2.1、修改dhcp服务的配置文件/etc/dhcp/dhcpd.conf

导入dhcp模板文件的配置内容。

修改配置文件。

2.2、修改tftp服务的配置文件/etc/xinetd/tftp,启用tftp功能。默认tftp是关闭的。

三、http搭建yum源

  用于提供软件包的访问地址。

启用http服务。配置http服务开机启动。

命令:

 [root@localhost etc]# systemctl restart httpd
[root@localhost etc]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost etc]#

创建yum客户端位置文件。在/etc/yum.repos.d/下创建yck.repo文件,这个文件的名字随便取,但是需要以.repo结尾。

检查yum是否配置成功。

四、提取光盘镜像中的引导文件和其他系统必须的文件

将光盘镜像中的initrd.img、splash.png、vesamenu.c32、vmlinuz拷贝到tftp服务默认的共享目录/var/lib/tftpboot/中。

命令:

 [root@localhost yum.repos.d]# cp -a /var/www/html/Centos7/isolinux/initrd.img /var/www/html/Centos7/isolinux/vmlinuz /var/lib/tftpboot/
[root@localhost yum.repos.d]# cp -a /var/www/html/Centos7/isolinux/splash.png /var/www/html/Centos7/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@localhost yum.repos.d]#

在/var/lib/tftpboot/创建目录pxelinux.cfg,并把光盘镜像中的isolinux.cfg拷贝到pxelinux.cfg目录下并命名为default。

命令:

 [root@localhost yum.repos.d]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost yum.repos.d]# cp -a /var/www/html/Centos7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost yum.repos.d]# ls /var/lib/tftpboot/pxelinux.cfg/
default
[root@localhost yum.repos.d]#

获取pxelinux.0文件,pxelinux.0是由syslinux包提供的,所以要先安装syslinux。然后再找pxelinux.0文件。

 [root@localhost yum.repos.d]# yum -y install syslinux
[root@localhost yum.repos.d]# find / -name "pxelinux.0"
/usr/share/syslinux/pxelinux.
[root@localhost yum.repos.d]#

把pxelinux.0文件拷贝到/var/lib/tftpboot/下。

修改/var/lib/tftpboot/pxelinux.cfg/default文件。

修改内容。

六、生成自动应答文件ks.cfg.并将应答文件放在/var/www/html/下。

安装system-config-kickstart软件包。通过命令system-config-kickstart开始配置自动应答文件,这个过程是全图形操作。

命令:

 system-config-kickstart

如果软件包选择项看不到任何软件包。

也可自定义脚本如下,根据自己的想法去写脚本。

将ks.cfg文件放在/var/www/html/下。

七、启动tftp服务、dhcp服务。确认dhcp、tftp、http服务是否正在运行。

八、新创建一个虚拟机,将新的虚拟机网卡设置为桥接模式,复制主机的网络状态。开机从网卡启动,开始装机。

新建虚拟机就不多介绍了。内存设为2G。太小可能导致系统安装失败。

新的虚拟机开机按F12.从网卡启动。

按回车键后,开始安装。

开始加载文件了,之后的暗账过程都是无人值守的。

系统安装完成。

网络装机pxe服务器的配置过程的更多相关文章

  1. 详解Linux系统下PXE服务器的部署过程

    在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量. 但是批量自动化安装服务器的基础是网络启动服务器(bootserver). 下面我们就介绍一下 网络启动服务器的 安装和配置方 ...

  2. 关于3G移动通信网络中用户ip的配置过程的研究(中国电信cdma2000)

    在RP口对ppp过程进行研究 PPP协商过程,如下图所示: 在建立ppp过程中pdsn需要与FAAA.HAAA交互.同时在分组数据业务进行过程中这种交互更加频繁,介绍如下,分为两种情况,简单ip,移动 ...

  3. 单域MPLS 虚拟私有网络的整个详解配置过程(可跟做)

    1.PE1和P和PE2之间跑IGP协议 运营商里面首选的还是ISIS协议我们实验的话,用的是OSPF协议 R3的IP地址和OSPF配置 [R3]display ip int brief *down: ...

  4. 在 Ubuntu 14.04 中配置 PXE 服务器

    PXE(预启动执行环境Preboot Execution Environment)服务器允许用户从网络中启动 Linux 发行版并且可以不需要 Linux ISO 镜像就能同时在数百台 PC 中安装. ...

  5. ubuntu虚拟机安装简单pxe服务器

    安装环境: vmware2台虚拟机,一台用来做pxe服务器(安装tftp.dhcp.apache2等服务),另一台用来做安装测试. 虚拟机的网络配置:dhcp的虚拟网络为192.168.10.100/ ...

  6. 阿里云ECS服务器源配置

    前段时间领取了阿里云ECS免费试用6个月的福利,此处记录一下服务器源配置过程和服务器用户创建过程. 一.CentOS源配置 1.备份 mv /etc/yum.repos.d/CentOS-Base.r ...

  7. Service系统服务(五):PXE基础装机环境、配置并验证DHCP服务、配置PXE引导、验证PXE网络装机、PXE+kickstart自动装机

    一.PXE基础装机环境 目标: 本例要求为后续的PXE服务器构建提供RHEL7软件仓库,完成下列任务: 1> 在CentOS真机部署Web目录/var/www/html/rh7dvd   2&g ...

  8. Linux PXE无人值守网络装机

    Linux PXE无人值守网络装机 一.实验环境: 2台Linux系统(RHEL6.5版本),1台作为:PXE远程安装服务器(安装dhcp服务.ftp服务.tftp服务),另1台作为:客户端(未装RH ...

  9. PXE高效能批量网络装机

    PXE简绍 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器 ...

随机推荐

  1. mount available

    Mount (computing), the process of making a file system accessible mount (Unix), the utility in Unix- ...

  2. 在VC++空工程中使用MFC类,采用Unicode字符集后,运行工程程序报错的解决方案

    创建一个VC++空工程,将Project Properties->General->Use of MFC改为Use MFC in a Shared DLL 新建一个源文件,内容如下 #in ...

  3. iOS 第三方登录之 QQ登录

    一. 首先需要下载腾讯qq登录所需的库,下载地址是http://open.qq.com/ . 需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bu ...

  4. Android Weekly Notes Issue #241

    Android Weekly Issue #241 January 22nd, 2017 Android Weekly Issue #241 本期内容包括: 经典导航模式Master/Detail的设 ...

  5. spring+mybatis项目整合

    前辈总结的很详细,贴出链接,参考学习 http://www.open-open.com/lib/view/open1392252233301.html

  6. HDU 5969 最大的位或 —— 贪心 + 二进制的理解

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5969 最大的位或 Time Limit: 2000/1000 MS (Java/Others)     ...

  7. httpd 隐藏文件

    问题情况, 因磁盘空间问题,使用rsync将 php工作目录下文件copy到新盘中后,出现 php服务很多目录访问返回 404,路径找不到,其实文件都存在,而且路径都是对的 解决思路. 根目录下 有个 ...

  8. SVG-Android开源库——SVG生成Vector资源文件的编辑预览工具

    Vector矢量图在Android项目中的应用越来越广泛,但是如果你想用Android Studio自带的工具将SVG图片转化成Vector资源文件却是相当麻烦,首先能支持的SVG规范较少,其次操作流 ...

  9. Android-低功耗蓝牙(BLE)-客户端(主机/中心设备)和服务端(从机/外围设备)

    一.Android 低功耗蓝牙(BLE)的API简介 从Android 4.3(API 18)才支持低功耗蓝牙(Bluetooth Low Energy, BLE)的核心功能, BLE蓝牙协议是GAT ...

  10. php函数的参数引用变量

    在php.ini中将allow_call_time_pass_reference的值改为'on'.