配置所需清单:
- rehl9虚拟机 ip: 192.168.96.101 【Client】
- 准备好本地yum源仓库
普通autofs挂载
autofs是什么?最简单的描述:我什么时候想用,什么时候挂载,我不用的时候,自动取消挂载,不占用系统资源
配置软件仓库 【注意保证镜像文件处于已连接的状态下】
[root@Client ~]# df 【由此可得,我们的镜像文件并没有挂载上去】
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1414992 0 1414992 0% /dev
tmpfs 1447688 0 1447688 0% /dev/shm
tmpfs 579076 8812 570264 2% /run
/dev/nvme0n1p3 102197500 6650956 95546544 7% /
/dev/nvme0n1p1 506528 270960 235568 54% /boot
tmpfs 289536 104 289432 1% /run/user/0
[root@Client ~]# echo "/dev/cdrom /mnt/cdrom auto defaults 0 0">> /etc/fstab
【直接将挂载写入永久配置】
[root@Client ~]# mkdir /mnt/cdrom
[root@Client ~]# mount -a
mount: /mnt/cdrom: WARNING: source write-protected, mounted read-only.
得到只读信息后,可通过df再次查看
[root@Client ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1414992 0 1414992 0% /dev
tmpfs 1447688 0 1447688 0% /dev/shm
tmpfs 579076 8812 570264 2% /run
/dev/nvme0n1p3 102197500 6650936 95546564 7% /
/dev/nvme0n1p1 506528 270960 235568 54% /boot
tmpfs 289536 104 289432 1% /run/user/0
/dev/sr0 8377364 8377364 0 100% /mnt/cdrom
由此可以看到,镜像文件已经被我们挂载在/mnt/cdrom目录上了
此时可以进入到/etc/yum.repos.d/下编写.repo结尾的仓库文件
[root@Client ~]# vim /etc/yum.repos.d/dvd.repo
[Baseos]
name=BaseOS
baseurl=file:///mnt/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/cdrom/AppStream
enabled=1
gpgcheck=0
【此处密钥校验若想开启,只需在/mnt/cdrom/下找到密钥文件即可
RPM-GPG-KEY-redhat-beta
RPM-GPG-KEY-redhat-release
添加时,只需使用一个即可,推荐使用RPM-GPG-KEY-redhat-release
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release】
准备工作就绪后,便可以开始安装autofs的安装包,他和nfs一样,不仅是一个安装包也是一个服务,可以根据规则自动挂载和卸载
[root@Client ~]# dnf install autofs -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 0:34:41 ago on Mon 08 Jul 2024 01:24:05 PM CST.
Dependencies resolved.
=================================================================================================================================================================
Package Architecture Version Repository Size
=================================================================================================================================================================
Installing:
autofs x86_64 1:5.1.7-27.el9 BaseOS 387 k
Installing dependencies:
libsss_autofs x86_64 2.6.2-2.el9 BaseOS 39 k
Transaction Summary
=================================================================================================================================================================
Install 2 Packages
Total size: 426 k
Installed size: 1.1 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : libsss_autofs-2.6.2-2.el9.x86_64 1/2
Installing : autofs-1:5.1.7-27.el9.x86_64 2/2
Running scriptlet: autofs-1:5.1.7-27.el9.x86_64 2/2
Verifying : autofs-1:5.1.7-27.el9.x86_64 1/2
Verifying : libsss_autofs-2.6.2-2.el9.x86_64 2/2
Installed products updated.
Installed:
autofs-1:5.1.7-27.el9.x86_64 libsss_autofs-2.6.2-2.el9.x86_64
Complete!
[root@Client etc]# systemctl enable --now autofs.service【配置开机自启,并且现在启动】
安装完成后,在我们的/etc/目录下,我们可以看到autofs的配置文件-auto.master
[root@Client etc]# ll auto*
-rw-r--r--. 1 root root 15712 Jan 9 2022 autofs.conf
-rw-------. 1 root root 232 Jan 9 2022 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 1290 Jul 8 14:07 auto.master
-rw-r--r--. 1 root root 519 Jan 9 2022 auto.misc
-rwxr-xr-x. 1 root root 901 Jan 9 2022 auto.net
-rwxr-xr-x. 1 root root 2087 Jan 9 2022 auto.smb
现在,我们开始正式的配置autofs,【以挂载镜像文件为例】主要分为以下几步:
1、先取消当前镜像文件的挂载,并删除/etc/fstab文件中的配置
2、编写auto.master配置文件中所需配置
3、创建autofs的触发配置文件
4、测试是否挂载成功
第一步
[root@Client etc]# umount /mnt/cdrom
[root@Client etc]# vim /etc/fstab
第二步
[root@Client etc]# vim /etc/auto.master
/mnt /etc/auto.iso
/mnt 是要挂载目录的父级目录,比如:我要挂载/mnt/cdrom,此处就写/mnt即可
/etc/auto.iso 是autofs的触发配置文件【文件的路径和名字可以自己定义】
第三步
[root@Client etc]# vim /etc/auto.iso
cdrom -fstype=iso9660 :/dev/sr0
cdrom 需要挂载的目录
-fstype 需要挂载的文件类型【注意:不要忘记fs,否则挂载必定不成功】
:/dev/sr0 冒号后面接需要挂载的设备文件
第四步
[root@Client etc]# df 【检查当前sr0是否挂载】
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1863332 0 1863332 0% /dev
tmpfs 1892788 0 1892788 0% /dev/shm
tmpfs 757116 13908 743208 2% /run
/dev/nvme0n1p3 102197500 4700348 97497152 5% /
/dev/nvme0n1p1 506528 250928 255600 50% /boot
tmpfs 378556 132 378424 1% /run/user/0
/dev/sr0 8377364 8377364 0 100% /run/media/root/RHEL-9-0-0-BaseOS-x86_64
[root@Client etc]# ls /mnt/cdrom/ 【发现并没有查看到文件,开始排错】
[root@Client etc]# systemctl status autofs.service 【状态是开启的,重启一下,因为我们刚修改配置文件】
● autofs.service - Automounts filesystems on demand
Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-07-08 14:02:45 CST; 28min ago
Main PID: 44647 (automount)
Tasks: 5 (limit: 23291)
Memory: 1.7M
CPU: 119ms
CGroup: /system.slice/autofs.service
└─44647 /usr/sbin/automount --systemd-service --dont-check-daemon
Jul 08 14:02:45 Client systemd[1]: Starting Automounts filesystems on demand...
Jul 08 14:02:45 Client systemd[1]: Started Automounts filesystems on demand.
[root@Client etc]# systemctl restart autofs.service
[root@Client etc]# ls /mnt/cdrom/ 【重启后,便可以看到我们的配置文件了】
AppStream BaseOS EFI EULA extra_files.json GPL images isolinux media.repo RPM-GPG-KEY-redhat-beta RPM-GPG-KEY-redhat-release
既然autofs这么神奇,那么是否可以连带着nfs一起自动挂载使用呢?
我们来试试。
【了解nfs共享存储的搭建可以参考NFS共享存储的搭建】
nfs与autofs的联合使用
配置清单
- rehl9虚拟机 ip: 192.168.96.100 【Server】
- rehl9虚拟机 ip: 192.168.96.101 【Client】
- 准备好本地yum源仓库
由于刚刚我们已经做好了准备工作,此时便不再重复操作,我们直接进入实验
[root@Client etc]# vim /etc/auto.master
/nfs /etc/auto.nfs
[root@Client etc]# vim /etc/auto.nfs
share -rw 192.168.96.100:/rehl9_Server
[root@Client ~]# systemctl restart autofs.service 【重启服务后生效】
[root@Client ~]# ls /nfs/share 【测试是否自动挂载】
dir1 file1
[root@Client ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1863332 0 1863332 0% /dev
tmpfs 1892788 0 1892788 0% /dev/shm
tmpfs 757116 9692 747424 2% /run
/dev/nvme0n1p3 102197500 4700716 97496784 5% /
/dev/nvme0n1p1 506528 250928 255600 50% /boot
tmpfs 378556 52 378504 1% /run/user/42
tmpfs 378556 36 378520 1% /run/user/0
192.168.96.100:/rehl9_Server 102197760 6596096 95601664 7% /nfs/share
注意:服务端的nfs服务一定要开启
进阶-实现多个目录的共享
我们已经完成了普通autofs和结合nfs的搭建,现在我们来尝试一下将多个目录自动挂载
服务端配置
[root@Server ~]# vim /etc/exports
/home/ladp1_S *(rw)
/home/ladp2_S *(rw)
/home/ladp3_S *(rw)
/home/ladp4_S *(rw)
[root@Server ~]# mkdir /home/ladp1_S
[root@Server ~]# mkdir /home/ladp2_S
[root@Server ~]# mkdir /home/ladp3_S
[root@Server ~]# mkdir /home/ladp4_S
[root@Server ~]# chmod o+w /home/ladp1_S
[root@Server ~]# chmod o+w /home/ladp2_S
[root@Server ~]# chmod o+w /home/ladp3_S
[root@Server ~]# chmod o+w /home/ladp4_S
[root@Server ~]# systemctl restart nfs-server.service
【NFS的具体配置,请参考NFS共享存储搭建】
客户端配置
[root@Client ~]# vim /etc/auto.master
/home /etc/auto.ladp
[root@Client ~]# vim /etc/auto.ladp
* -rw 192.168.96.100:/home/&
*和&其实表示的是同一个,比如*是ladp1_S,那么&也是ladp1_S
同样因为创建的是用户,所以我们可以用这种方式节省时间
[root@Client ~]# systemctl start autofs.service
[root@Client ~]# useradd ladp1_S
useradd: warning: the home directory /home/ladp1_S already exists.
useradd: Not copying any file from skel directory into it.
[root@Client ~]# useradd ladp2_S
useradd: warning: the home directory /home/ladp2_S already exists.
useradd: Not copying any file from skel directory into it.
[root@Client ~]# useradd ladp3_S
useradd: warning: the home directory /home/ladp3_S already exists.
useradd: Not copying any file from skel directory into it.
[root@Client ~]# useradd ladp4_S
useradd: warning: the home directory /home/ladp4_S already exists.
useradd: Not copying any file from skel directory into it.
如上显示已经存在,那么,我们可以去服务端验证一下,是否可以正常使用
验证
服务端
[root@Server ladp1_S]# cd
[root@Server ~]# systemctl stop nfs-server.service
[root@Server ~]# systemctl start nfs-server.service
[root@Server ~]# cd /home/ladp1_S/
[root@Server ladp1_S]# touch file1
[root@Server ladp1_S]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 8 15:38 file1
[root@Server ladp1_S]# echo "hello" >> file1
[root@Server ladp1_S]# cat file1
hello
客户端
[root@Client ~]# su - ladp1_S
[ladp1_S@Client ~]$ ls
file1
[ladp1_S@Client ~]$ cat file1
hello
到此,autofs自动挂载已经结束。