題目:現有主機 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
最終實現效果:
?