线上很多服务器都需要挂载存储上的公共目录,并实现开机启动(/etc/fstab),比如web的静态文件共享目录,日志远程集中收集等。
一、批量挂载部分。
1.在node1上配置nfs服务器,有关nfs服务器配置自己查阅相关文档。
2.在node1上,即salt-master服务端编写state.sls文件。
3.state文件如下:
[root@node1 base]# pwd
/srv/salt/base
[root@node1 base]# tree
.
├── nfsmount.sls
└── top.sls directories, files
[root@node1 base]# cat top.sls
base:
'*':
- nfsmount
[root@node1 base]# cat nfsmount.sls
nfs-utils-lib:
pkg.installed:
- name: nfs-utils-lib nfsmount:
mount.mounted:
- device: 192.168.3.1:/nfs
- fstype: nfs
- name: /mnt
- mkmnt: true
- opts:
- defaults
- require:
- pkg: nfs-utils-lib
4.执行编写好的状态模块。
[root@node1 base]# salt '*' state.highstate env=base test
[root@node1 base]# salt '*' state.highstate env=base
5.在node1|node2上查看执行结果。
[root@node1 base]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-LogVol00 % /
tmpfs % /dev/shm
/dev/sda1 % /boot
192.168.3.1:/nfs % /mnt
[root@node1 base]# tail -n1 /etc/fstab
192.168.3.1:/nfs /mnt nfs defaults
[root@node2 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-LogVol00 % /
tmpfs % /dev/shm
/dev/sda1 % /boot
192.168.3.1:/nfs % /mnt
[root@node2 ~]# tail -n1 /etc/fstab
192.168.3.1:/nfs /mnt nfs defaults
二、批量卸载部分
1.在上述环境基础上编写卸载state文件。
[root@node1 base]# pwd
/srv/salt/base
[root@node1 base]# tree
.
├── nfsmount.sls
├── nfsumount.sls
└── top.sls directories, files
[root@node1 base]# cat nfsumount.sls
nfsumount:
mount.unmounted:
- device: 192.168.3.1:/nfs
- name: /mnt
*注释:上述红色部分二者缺一不可,否则卸载失败。
2.执行该状态模块。(此处使用指定状态模块执行的方法执行)
[root@node1 base]# salt '*' state.sls nfsumount
3.在node1和node2上,查看已经卸载,并清除了/etc/fstab文件内容。