ansible的mount模块用于管理linux系统的文件系统挂载,可以实现挂载磁盘、卸载文件系统、配置/etc/fstab开机自动挂载等操作。
1.mount模块常用参数
| 参数 | 含义 | 示例 |
| path | 挂载点目录 | /media |
| src | 设备路径或远程文件系统 | /dev/cdrom |
| fstype | 文件系统类型 | xfs、ext4、nfs、isso9660 |
| state | 指定挂载状态 | mounted |
| opts | 挂载选项 | defaults |
| dump | 对应fstab的dump字段 | 0 |
| passno | 对应fstab的fsck检查顺序 | 0 |
2.state的5种状态
| state | 作用 | 修改/etc/fstab |
| mounted | 挂载文件系统,并确保配置写入fstab | 是 |
| unmounted | 卸载文件系统,但保留fstab配置 | 否 |
| present | 仅确保fstab中存在配置,不执行挂载 | 是 |
| absent | 卸载文件系统并删除fstab中对应配置 | 是 |
| remounted | 重新挂载文件系统 | 取决于配置情况,通过不修改fstab |
mounted:配置+挂载
unmounted:只卸载,保留配置
present:只配置,不挂载
absent:删除配置,必要时卸载
remounted:重新挂载
3.常见示例
1.ISO镜像挂载并设置开机自动挂载
假设将/dev/cdrom光盘挂载到/media,文件系统类型为iso9660
– hosts: all
tasks:
– name: mount iso to /media
mount:
src: /dev/cdrom
path: /media
fstype: iso9660
opts: defaults
state: mounted
语法检查
[root@cent79-2 yaml-directory]# ansible-playbook –syntax-check mount.yaml
playbook: mount.yaml
[root@cent79-2 yaml-directory]#
模拟执行
[root@cent79-2 yaml-directory]# ansible-playbook -C mount.yaml #-C模拟执行,不是真的直接执行
PLAY [all] **************************************************************************************
TASK [Gathering Facts] **************************************************************************
ok: [192.168.10.100]
TASK [mount iso to /media] **********************************************************************
changed: [192.168.10.100]
PLAY RECAP **************************************************************************************
192.168.10.100 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@cent79-2 yaml-directory]#
真实执行
[root@cent79-2 yaml-directory]# ansible-playbook mount.yaml
PLAY [all] **************************************************************************************
TASK [Gathering Facts] **************************************************************************
ok: [192.168.10.100]
TASK [mount iso to /media] **********************************************************************
changed: [192.168.10.100]
PLAY RECAP **************************************************************************************
192.168.10.100 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@cent79-2 yaml-directory]#
被管理端验证
[root@patrolagent ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Nov 24 17:31:46 2020
#
# Accessible filesystems, by reference, are maintained under \’/dev/disk\’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel_patrolagent-root / xfs defaults 0 0
UUID=bc617ee4-b4e6-4f09-9a4b-2025d80e4684 /boot xfs defaults 0 0
/dev/mapper/rhel_patrolagent-home /home xfs defaults 0 0
/dev/mapper/rhel_patrolagent-var /var xfs defaults 0 0
/dev/mapper/rhel_patrolagent-swap swap swap defaults 0 0
/dev/cdrom /media iso9660 defaults 0 0
[root@patrolagent ~]#
[root@patrolagent ~]# df -h
Filesystem Size






