Bootstrap

Linux上的系统服务——DNS、WEB、NFS 和 AutoFS 服务的详细配置步骤

现有主机 node01 和 node02,完成如下需求:
1、在 node01 主机上提供 DNS 和 WEB 服务
2、dns 服务提供本实验所有主机名解析
3、web服务提供 www.rhce.com 虚拟主机
4、该虚拟主机的documentroot目录在 /nfs/rhce 目录
5、该目录由 node02 主机提供的NFS服务共享
6、该目录可以通过autofs服务实现自动挂载
7、所有服务应该在重启之后依然可以正常使用

在此次 RHCE 系统服务综合实验中,我们需要在两台主机 node01(192.168.205.135)和 node02(192.168.205.136)上配置 DNS、WEB、NFS 和 AutoFS 服务。以下是详细的操作步骤和配置过程~~


需求分析

  1. DNS 和 WEB 服务在 node01 主机上提供:DNS 服务用于域名解析,WEB 服务用于提供 www.rhce.com 虚拟主机。
  2. DNS 服务解析所有主机名:DNS 服务器保存所有主机名的解析记录。
  3. WEB 服务的 DocumentRoot 目录位于 /nfs/rhce:WEB 服务的根目录存储在 /nfs/rhce,由 node02 提供 NFS 共享。
  4. 利用自动挂载功能:通过 autofs 实现自动挂载,简化管理,并确保目录在访问时自动挂载。
  5. 确保服务在重启后依然正常运行:所有服务需要在系统重启后自动启动。

准备工作:配置防火墙规则

首先,在 node01 和 node02 上配置防火墙,以放行必要的服务端口:

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --list-services  # 显示已放行的服务
  • NFS 服务依赖于多个端口(如 mountd、rpc-bind),为了确保 NFS 服务能够正常工作,我们需要将这些相关端口放行。

1. 在 node01 上提供 DNS 和 WEB 服务

1.1 配置 DNS 服务

在 node01 主机上编辑 DNS 配置文件:

vim /etc/named.conf

添加以下内容:

options {
    listen-on port 53 { 192.168.205.135; };
    directory "/var/named";
};

zone "rhce.com" IN {
    type master;
    file "named.rhce";
};
  • listen-on port 53 { 192.168.205.135; }; 指定 DNS 服务器监听接口和端口(53为DNS服务端口),确保 DNS 服务仅在特定 IP 地址上监听。
  • directory "/var/named"; 指定区域数据文件存放的位置。
  • zone "rhce.com" 定义一个新的区域并指示该区域的数据存储在 /var/named/named.rhce 文件中。

创建区域文件:

vim /var/named/named.rhce

添加以下内容:

$TTL 1D
@       IN      SOA     @       admin.rhce.com. (
                        0 ; Serial
                        1 ; Refresh
                        1 ; Retry
                        1 ; Expire
                        1 ) ; Minimum TTL
        IN      NS      ns.rhce.com.
ns      IN      A       192.168.205.135
www     IN      A       192.168.205.135
  • $TTL 1D 设置默认的生存时间为1天。
  • SOA记录提供了该区域的权威信息,如负责的管理员。
  • NS记录指定了负责该区域的名字服务器。
  • A记录将域名(www.rhce.com)解析为 IP 地址(192.168.205.135)。

启动并启用 DNS 服务:

systemctl restart named
systemctl enable named
  • 启动和启用服务,以确保 DNS 服务在系统重启后自动启动。
1.2 配置 WEB 服务

编辑 Apache 虚拟主机配置文件:

vim /etc/httpd/conf.d/vhost.conf

添加以下内容:

<Directory /nfs>
    AllowOverride None
    Require all granted
</Directory>

<VirtualHost 192.168.205.135:80>
    DocumentRoot /nfs/rhce
    ServerName www.rhce.com
</VirtualHost>
  • <Directory /nfs> 设置访问权限,确保所有用户都能访问 /nfs 目录。
  • DocumentRoot /nfs/rhce 指定虚拟主机的根目录。
  • ServerName www.rhce.com 设置虚拟主机的域名。

创建 DocumentRoot 目录并添加测试文件:

mkdir -p /nfs/rhce
echo "welcome to rhce" > /nfs/rhce/index.html
  • 创建虚拟主机的根目录并创建测试文件,以此来验证 WEB 服务是否正常工作。

启动并启用 Apache 服务:

systemctl restart httpd
systemctl enable httpd
  • 启动和启用服务,以确保 WEB 服务在系统重启后能够自动启动。

2. 在 node02 上配置 NFS 服务

编辑 NFS 配置文件:

vim /etc/exports

添加以下内容:

/nfs/rhce 192.168.205.135(rw,sync,all_squash)
  • /etc/exports 文件用于配置 NFS 共享目录。
  • 192.168.205.135(rw,sync,all_squash) 指定共享目录的客户端地址和相关权限设置。

创建共享目录并设置权限:

mkdir -p /nfs/rhce
chmod -R 777 /nfs/rhce
  • 确保共享目录存在并设置适当的权限,使所有用户都可以读取和写入该目录。

启动并启用 NFS 服务:

systemctl start rpcbind
systemctl start nfs-server
systemctl enable rpcbind
systemctl enable nfs-server

3. 在 node01 上配置自动挂载

编辑自动挂载主配置文件:

vim /etc/auto.master

添加以下内容:

/nfs    /etc/auto.nfs
  • 定义自动挂载点 /nfs 及其配置文件 /etc/auto.nfs,更方便统一管理。

编辑自动挂载子配置文件:

vim /etc/auto.nfs

添加以下内容:

rhce    192.168.205.136:/nfs/rhce
  • 将远程 NFS 共享路径(192.168.205.136:/nfs/rhce)挂载到本地的 /nfs/rhce

启动并启用 autofs 服务:

systemctl restart autofs
systemctl enable autofs
  • 启动并启用 autofs 服务,以确保在系统重启后能够自动启动来实现目录的自动挂载。

4. 验证配置

4.1 验证 DNS 解析

在 node01 上验证 DNS 解析:

dig -t A www.rhce.com @192.168.205.135
  • 使用 dig 工具验证 DNS 解析是否正常工作。
4.2 验证 Web 服务

在 node01 上验证 Web 服务:

curl www.rhce.com
# 输出:welcome to rhce
  • 使用 curl 工具访问虚拟主机,验证 WEB 服务是否正常工作。
4.3 验证自动挂载

在 node01 上验证自动挂载:

cd /nfs/rhce
ls
# 输出:index.html
  • 访问自动挂载的目录,验证 autofs 是否正常工作。

5. 确保配置在系统重启后依然有效

5.1 配置 /etc/fstab 持久化 NFS 挂载

在 node02 上编辑 /etc/fstab 文件:

vim /etc/fstab

添加以下内容:

/nfs/rhce 192.168.205.136:/nfs/rhce nfs defaults 0 0
  • 确保 NFS 目录在系统重启后自动挂载。
5.2 确保 DNS 和 Apache 服务启动

确保 DNS 和 Apache 服务在重启后能够自动启动:

systemctl enable named
systemctl enable httpd
5.3 验证 Apache 配置文件

在修改完 Apache 配置文件后,验证配置文件是否有语法错误:

apachectl configtest

;