使用CentOS搭建PXE网络安装服务器

本文详细介绍如何在CentOS 7环境下搭建PXE网络安装服务器,包括安装所需软件包、配置DHCP、TFTP及HTTP服务等内容,并展示了如何配置防火墙、SELinux以及设置多镜像引导。

使用CentOS搭建PXE网络安装服务器

本文记录了PXE网络安装服务器的搭建过程,对以下参考链接中未记录的,包括防火墙设置等进行了进一步补充,参考连接: [ 通过网络安装CentOs7 ]

###本文使用的系统环境如下:

  • 服务器操作系统:CentOS 7
  • 服务器IP地址:10.39.100.150
  • 镜像ISO文件保存目录为:/root/downloads/
  • 镜像ISO文件名为:CentOS-7-x86_64-DVD-1804.iso
  • 第三章节使用的ISO文件名为:CentOS-6.8-x86_64-bin-DVD1.iso

###其它约定:

  • 开始执行本文操作前,请先上传ISO镜像到服务器
  • linux命令块使用此种样式

mkdir /var/www/html/centos7

  • 文件中的内容使用此种样式
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

一、安装所需软件包

yum install dhcp xinetd syslinux httpd tftp-server -y

根据所使用系统、系统版本不同,此处使用的命令、软件包可能会有所差异。
其中各软件功能如下:

 dhcpd:     动态分配IP
 xinetd:    对服务访问进行控制,这里主要是控制tftp
 tftp:     从服务器端下载pxelinux.0、default文件
 syslinux:   用于网络引导
 httpd:     在网络上提供安装源,也就是镜像文件中的内容

二、配置软件环境

2.0 XNET配置

vi /etc/xinetd.d/tftp

  • 编辑disable = yes,修改为如下内容
        disable                 = no

2.1 DHCP配置

vi /etc/dhcp/dhcpd.conf

添加如下内容( 内容中的各类IP请替换成自己的IP地址


# 1. 整体的环境设定 其中10.39.100.150是本机IP地址
ddns-update-style none;
ignore client-updates;
default-lease-time 259200;
max-lease-time 518400;
option domain-name-servers 10.39.100.150;

# 2. 关于动态分配的 IP ,
# 其中10.39.100.150是本机IP地址
# 10.39.100.0 netmask 255.255.254.0是笔者服务器所在的内网网段及子网掩码
# range 10.39.100.180 192.168.100.199 是笔者可用的DHCP地址池范围
subnet 10.39.100.0 netmask 255.255.254.0 {
       range 10.39.100.180 10.39.100.199;
       option routers 10.39.100.150;
       option subnet-mask 255.255.254.0;
       next-server 10.39.100.150;
       # the configuration  file for pxe boot
       filename "pxelinux.0";
}

2.2 配置服务、防火墙

  • 依次执行以下命令,添加软件到开机自启动 && 服务启动

systemctl enable dhcpd && systemctl start dhcpd
systemctl enable xinetd && systemctl start xinetd
systemctl enable tftp && systemctl start tftp
systemctl enable httpd && systemctl start httpd

  • 依次执行以下命令,开放防火墙TCP-80端口及UDP-69端口,注意不要搞错了UDP和TCP。

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=67/udp --permanent
firewall-cmd --zone=public --add-port=69/udp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

  • 编辑SELinux配置文件

vi /etc/sysconfig/selinux

  • 修改内容SELINUX=enforcing如下,使关闭SELinux
SELINUX=disabled
  • 因为修改selinux配置文件要重启才能生效,故先执行 “ 暂时关闭(重启失效)” 命令

setenforce 0

2.3 设置镜像文件、安装配置文件

mkdir /var/www/html/centos7
vi /etc/fstab

  • 末尾加入
/root/downloads/CentOS-7-x86_64-DVD-1804.iso /var/www/html/centos7/ iso9660 defaults,ro,loop 0 0

mount -a
mkdir /var/lib/tftpboot/centos7
cp /var/www/html/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
cp /var/www/html/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default

  • 文件内容填写
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with HTTP
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://10.39.100.150/centos7 devfs=nomount

至此,服务器配置完毕,同一网段的计算机使用网络引导即可安装本服务器配置的CentOS7系统。

三、添加多镜像引导

mkdir /var/www/html/centos6.8
vi /etc/fstab

  • 文末添加以下内容
>/root/downloads/CentOS-6.8-x86_64-bin-DVD1.iso /var/www/html/centos6.8/ iso9660 defaults,ro,loop 0 0

mount -a
mkdir /var/lib/tftpboot/centos6.8
cp /var/www/html/centos6.8/images/pxeboot/initrd.img /var/lib/tftpboot/centos6.8/
cp /var/www/html/centos6.8/images/pxeboot/vmlinuz /var/lib/tftpboot/centos6.8/
vi /var/lib/tftpboot/pxelinux.cfg/default

  • 文末添加以下内容
label 2
menu label ^2) Install CentOS 6.8 x64 with HTTP
kernel centos6.8/vmlinuz
append initrd=centos6.8/initrd.img method=http://10.39.100.150/centos6.8 devfs=nomount
<think>首先,用户的问题是关于在Linux系统中使用yum安装、配置、启动、停止和查看httpd服务的状态,以及理解配置文件和日志信息。具体包括: - 使用yum安装httpd服务 - 启动和停止服务 - 查看状态 - 访问测试HTML页面 - 查看系统日志信息 - 动态和静态分析服务状态 - 查找和查看httpd配置文件中的DocumentRoot指令 我需要根据系统级指令来构建回答: 1. **行内数学表达式**:使用$...$格式。但在这个主题中,可能没有数学表达式,所以我可以忽略。 2. **独立公式**:必须使用$$...$$格式并单独成段。同样,这里可能不需要。 3. **LaTeX语法正确**:确保所有LaTeX正确。 4. **使用中文回答**:整个回答用中文。 5. **生成相关问题**:在回答结束后,添加相关问题部分。 6. **引用标识**:在回答中引用的段落末尾自然地添加引用标识,例如[^1]。参考提供的引用,我需要整合它们: - 引用[1]:关于安装、启动和启用httpd服务的命令。 - 引用[2]:关于yum配置文件的细节。 - 引用[3]:关于httpd服务的配置选项。 用户意图是学习httpd服务的基本操作和配置,所以我应该基于这些引用构建回答。 回答结构需要清晰,逐步解决问题: 1. **安装httpd服务** 2. **启动和停止服务** 3. **查看服务状态** 4. **访问测试HTML页面** 5. **查看日志信息** 6. **分析服务状态(动态和静态)** 7. **查找和查看DocumentRoot指令** 最后,添加相关问题。 大纲回答: - **步骤1: 安装httpd服务** 使用yum命令安装。参考引用[1]。 - **步骤2: 启动和停止服务** 使用systemctl命令。参考引用[1]。 - **步骤3: 查看服务状态** 使用systemctl status命令。 - **步骤4: 访问测试HTML页面** 默认页面在/var/www/html/index.html,可以通过浏览器访问。 - **步骤5: 查看系统日志信息** 日志通常在/var/log/httpd/目录下。 - **步骤6: 动态和静态分析服务状态** - 静态:查看配置文件,如/etc/httpd/conf/httpd.conf。 - 动态:使用命令如systemctl status或journalctl。 - **步骤7: 查找和查看DocumentRoot指令** 在配置文件中查找DocumentRoot。 在引用部分,自然地添加引用标识。例如,在描述安装步骤时添加[^1]。 相关问题生成: 1. 如何配置httpd虚拟主机? 2. httpd服务的安全性最佳实践是什么? 3. 如何优化httpd性能? 确保回答真实可靠。</think>### 在Linux中使用yum管理httpd服务 下面我将逐步指导您如何在Linux系统(如CentOS或RHEL)中使用yum安装、配置和管理httpd服务(Apache Web服务器)。整个过程包括安装、启动/停止服务、查看状态、测试访问、日志分析以及配置文件操作。内容基于Linux标准实践和引用资料,确保可靠性和可操作性。所有命令需以root或sudo权限执行。 #### 1. **安装httpd服务** 使用yum包管理器安装httpd服务。yum会自动处理依赖关系,并下载安装最新稳定版本。 ```bash # 安装httpd sudo yum install httpd -y ``` 安装完成后,httpd的配置文件默认位于`/etc/httpd/`目录,二进制文件在`/usr/sbin/httpd`。yum的缓存和配置可参考`/etc/yum.conf`文件,其中定义了缓存目录(如`/var/cache/yum`)、日志位置(`/var/log/yum.log`)等变量(如`$basearch`表示硬件架构)[^2]。 #### 2. **启动和停止服务** 安装后,使用systemctl命令管理服务生命周期。 - **启动服务**: ```bash sudo systemctl start httpd ``` - **停止服务**: ```bash sudo systemctl stop httpd ``` - **启用开机自启动**: ```bash sudo systemctl enable httpd ``` 这些命令确保httpd在系统启动时自动运行。引用资料显示,启动服务后可通过systemctl检查状态[^1]。 #### 3. **查看服务状态** 使用systemctl status命令实时监控服务状态: ```bash sudo systemctl status httpd ``` 输出包括服务是否活跃(active)、运行时间、进程ID(PID)以及最近的日志片段。例如: - `Active: active (running)` 表示服务正在运行。 - 如果服务失败,输出会显示错误详情(如端口冲突)。 #### 4. **访问测试HTML页面** httpd默认提供测试页面。验证服务是否正常工作: - **创建或确认默认页面**:httpd的默认文档根目录(DocumentRoot)通常为`/var/www/html/`。确保存在`index.html`文件: ```bash echo "Hello, HTTPD Test Page" | sudo tee /var/www/html/index.html ``` - **访问页面**: 在浏览器输入服务器IP地址(如`http://<your-server-ip>`),或使用curl命令: ```bash curl http://localhost ``` 如果看到输出内容,表示服务运行正常。防火墙需允许80端口(`sudo firewall-cmd --add-service=http --permanent`)。 #### 5. **查看系统日志信息** httpd日志分为访问日志(access_log)和错误日志(error_log),默认位于`/var/log/httpd/`目录。 - **实时查看错误日志**: ```bash sudo tail -f /var/log/httpd/error_log ``` - **查看系统级日志**:使用journalctl动态分析服务状态: ```bash sudo journalctl -u httpd --since "5 min ago" ``` 这显示最近5分钟的日志,帮助诊断启动失败或请求错误。 - **静态分析日志**:直接查看日志文件: ```bash sudo less /var/log/httpd/access_log # 访问日志 sudo less /var/log/httpd/error_log # 错误日志 ``` 日志格式包括时间戳、客户端IP、请求状态(如404错误),可用于性能和安全审计。 #### 6. **动态和静态分析服务状态** - **静态分析**:检查配置文件语法和内容。 - 验证配置文件语法: ```bash sudo apachectl configtest ``` 输出`Syntax OK`表示无错误。 - 查看关键配置:如`/etc/httpd/conf/httpd.conf`文件,包含全局设置。 - **动态分析**:监控实时状态。 - 使用`systemctl status httpd`查看资源使用(CPU/内存)。 - 结合`top`或`htop`命令过滤httpd进程: ```bash top -p $(pgrep httpd | tr '\n' ',') ``` 这帮助识别性能瓶颈(如高负载)。 #### 7. **查找和查看DocumentRoot指令** DocumentRoot指令定义网站内容的根目录,通常在httpd配置文件中。 - **查找DocumentRoot位置**: ```bash sudo grep -i "DocumentRoot" /etc/httpd/conf/httpd.conf ``` 输出示例:`DocumentRoot "/var/www/html"`。 - **查看完整指令上下文**: ```bash sudo cat /etc/httpd/conf/httpd.conf | grep -A 10 "DocumentRoot" ``` 这显示DocumentRoot及其相关设置(如`<Directory>`块)。如需修改,编辑文件后重启服务(`sudo systemctl restart httpd`)。引用资料提到,在编译安装时可通过`--prefix`自定义路径[^3]。 ### 注意事项 - **安全性**:修改配置文件后,始终运行`sudo apachectl configtest`避免错误。 - **权限问题**:确保`/var/www/html/`目录权限为`apache:apache`(或`httpd`用户)。 - **引用整合**:以上步骤综合了yum安装[^1]、配置文件变量[^2]和高级配置选项[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值