题目:现有主机 node01 和 node02,完成如下需求:
1、在 node01 主机上提供 DNS 和 WEB 服务
2、dns 服务提供本实验所有主机名解析
3、web服务提供 www.rhce.com 虚拟主机
4、该虚拟主机的documentroot目录在 /nfs/rhce 目录
5、该目录由 node02 主机提供的NFS服务共享
6、该目录可以通过autofs服务实现自动挂载
7、所有服务应该在重启之后依然可以正常使用
两台虚拟机配置要求如下图:
解释:左边node1虚拟主机--web服务器;右边node2虚拟主机--fns服务器,提供dns虚拟主机的documentroot目录;两台虚拟机防火墙,SELinux保持开启。
解题:
第一步:配置NFS服务共享,以及实现 /nfs/rhce 目录可以通过autofs服务实现自动挂载到node1
node1上面安装以下软件包:
[root@node1 ~]# yum install httpd bind nfs-utils autofs -y
node2上面安装以下软件包:
[root@node2 ~]# yum install bind nfs-utils -y
(1)node2上配置nfs(以下的操作在node2上完成):
[root@node2 ~]# yum install nfs-utils -y
#启动服务
[root@node2 ~]# systemctl enable --now rpcbind
[root@node2 ~]# systemctl enable --now nfs-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@localhost ~]# systemctl status rpcbind
● rpcbind.service - RPC BindLoaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor prese>Active: active (running) since Tue 2024-07-09 23:19:40 EDT; 26s ago
TriggeredBy: ● rpcbind.socketDocs: man:rpcbind(8)Main PID: 4142 (rpcbind)Tasks: 1 (limit: 10756)Memory: 1.6MCPU: 33msCGroup: /system.slice/rpcbind.service└─4142 /usr/bin/rpcbind -w -f
#防火墙添加服务
[root@node2 ~]# firewall-cmd --permanent --add-service=nfs
success
[root@node2 ~]# firewall-cmd --reload
success
[root@node2 ~]# systemctl restart nfs-server.service
#创建存放nfs要导出文件的目录并设置权限
[root@node2 ~]# mkdir /rhce
[root@node2 ~]# chmod 777 /rhce/
#创建网页内容文件
[root@node2 ~]#echo rhce > /rhce/index.html
#编写配置文件
[root@node2 ~]# vim /etc/exports
/nfs *(rw) # *:表示所有人都有/nfs下的rw权限
#防火墙添加服务
[root@node2 ~]# firewall-cmd --permanent --add-service=mountd
success
[root@node2 ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@node2 ~]# firewall-cmd --reload
success
[root@node2 ~]# firewall-cmd --list-services
cockpit dhcpv6-client dns mountd nfs rpc-bind ssh
#重启服务
[root@node2 nfs]# systemctl restart nfs-server.service
#看一下自己能不能找到
[root@node2 ~]# showmount -e 192.168.54.129
Export list for 192.168.54.129:
/rhce 192.168.54.128
/etc/exports配置文件内容如下:
[root@node2 ~]# cat /etc/exports
/rhce 192.168.54.128(rw)
(2)node1上配置autofs服务实现自动挂载
#查看能不能看见
[root@node1 ~]# showmount -e 192.168.54.129
Export list for 192.168.54.129:
/rhce 192.168.54.129
#创建存放接收的文件的目录
[root@node1 ~]# mkdir /nfs
#配置/etc/auto.master主配置文件
[root@node1 ~]# vim /etc/auto.master
/nfs /etc/auto.nfs
#创建并配置/etc/auto.nfs子配置文件
[root@node1 ~]# vim /etc/auto.nfs
rhce 192.168.54.129:/rhce
#重启服务
[root@node1 ~]# systemctl restart autofs.service
#cd到目录,查看
[root@node1 ~]# cd /nfs/
[root@node1 nfsclient]# ll
total 0
#cd rhce,让其自动挂载
[root@node1 nfsclient]# cd nfs
#再次查看(是否自动挂载)
[root@node1 nfs]# ll
total 0
drwxrwxrwx. 2 root root 24 Jul 10 09:27 rhce
#查看一下文件内容
[root@node1 nfs]# cat rhce/index.html
rhce
第二步:配置node1虚拟主机web服务和dns服务
(1)配置web服务:
编写vhost.conf文件,内容如下:
[root@node1 ~]# cd /var/named/
[root@node1 named]# cd /etc/httpd/conf.d/
[root@node1 conf.d]# cat vhost.conf
<directory /nfs>
allowoverride none
require all granted
</directory><virtualhost 192.168.54.128:80>
documentroot /nfs/rhce
servername www.rhce.com
</virtualhost>
重启服务:
[root@node1 conf.d]# systemctl restart httpd
添加本地域名解析 :
[root@node1 conf.d]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.54.128 www.rhce.com
配置DNS:
[root@node1 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.54.128
(2)配置dns正向解析:
配置 /etc/named.conf 配置文件,内容如下:
[root@node1 ~]# cat /etc/named.conf
options {listen-on port 53 { 192.168.54.128; };directory "/var/named";
};zone "." IN {type hint;file "named.ca";
};zone "rhce.com" IN {type master;file "named.rhce";
};
配置named.rhce配置文件,内容如下:
[root@node1 named]# cd /var/named/
[root@node1 named]# cat named.rhce
$TTL 1d
@ IN SOA @ admin.rhce.com.(20240708011111)IN NS ns.rhce.com.
ns IN A 192.168.54.128
www IN A 192.168.54.128
重启服务:
[root@node1 named]# systemctl start firewalld.service
放行防火墙服务:
[root@node1 named]# systemctl start firewalld.service
[root@node1 named]# firewall-cmd --permanent --add-service=http
success
[root@node1 named]# firewall-cmd --permanent --add-service=dns
success
[root@node1 named]# firewall-cmd --reload
success
测试:
当httpd进程使用 nfs 文件系统时,需要打开一个selinux 布尔值 这个提示会在系统日志中出现,setsebool -P httpd_use_nfs 1 这个是开启的命令,如果不执行不能访问页面,因为 SELinux开启只放行对于标签的文件,需要改文件标签才能访问页面,但是传过来的index.html文件改不了标签,所以要使用上面这个命令。
#当httpd进程使用 nfs 文件系统时,需要打开一个selinux 布尔值 这个提示会在系统日志中出现,setsebool -P httpd_use_nfs 1 这个是开启的命令
[root@node1 named]# setsebool -P httpd_use_nfs 1
[root@node1 named]# dig -t A www.rhce.com; <<>> DiG 9.16.23-RH <<>> -t A www.rhce.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63068
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7efdee07e124353801000000668ea9127b048955c5c69d8c (good)
;; QUESTION SECTION:
;www.rhce.com. IN A;; ANSWER SECTION:
www.rhce.com. 86400 IN A 192.168.54.128;; Query time: 4 msec
;; SERVER: 192.168.54.128#53(192.168.54.128)
;; WHEN: Wed Jul 10 11:30:26 EDT 2024
;; MSG SIZE rcvd: 85
[root@node2 ~]# curl www.rhce.com
rhce
第三步:node2配置/etc/name.conf文件,DNS,测试
[root@node2 ~]# cat /etc/named.conf
options {listen-on port 53 { 192.168.54.129; };directory "/var/named";
};zone "." IN {type hint;file "named.ca";
};
[root@node2 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.54.128
[root@node2 ~]# curl www.rhce.com
rhce
第四步:实现所有服务应该在重启之后依然可以正常使用
node1:
[root@node1 ~]# systemctl enable httpd named
node2:
[root@node2 ~]# systemctl enable httpd named nfs-server
最终实现效果: