SaltStack – 使用 MinionFS 作为文件服务器
SaltStack – 使用 MinionFS 作为文件服务器
该MinionFS是由盐提供一个特殊的文件服务器的爪牙在它们之间交换文件。MinionFS 提供的文件是 Minion 有意共享的文件。要共享文件,Minion 必须遵循以下步骤。
-
Source minion 必须使用cp.push函数将文件推送到 salt master 。
-
一旦文件被源 minion 推送,任何其他 minion 就可以使用 MinionFS 文件服务器访问部署的文件。
启用推送
默认情况下,minion 将文件推送到 master 是禁用的。要接受来自 minion 的文件,master 需要在配置文件中有“file_recv”选项,并且它的值必须设置为True。默认情况下,“file_recv”的值为false。
file_recv: True
启用该选项后,重新启动主服务。
推送文件
Minions 可以将文件推送到 master。它由cp.push函数执行。这个 cp.push 函数提供了一种简单的机制,可以使用 minion id 通过 minion 推送文件。
salt 'minion-id' cp.push /path/to/the/file
这里,minion-id 用于标识哪个 minion 正在推送文件。此命令会将文件存储在master 的 cachedir下名为minions的子目录中。通常,路径是-/var/cache/salt/master/minions。
对于minion、m1和文件-/var/log/mylog.txt,该文件将存储在-/var/cache/salt/master/minions/m1/var/log/mylog.txt。
启用 MinionFS
为了使MinionFS,只需添加仆从在文件服务器的后端设置为显示在下面的代码块。
fileserver_backend: - roots - minion
启用 MinionFS 后,minion 推送文件可用作 –
salt://<minion-id>/path/to/pushed/file
对于 minion、m1和推送文件 – /var/log/mylog.txt,推送文件将从 salt://m1/var/log/mylog.txt 提供。
可以使用以下配置将此 minionFS 挂载到特殊目录中。它将 minionFS 文件与其他文件分开,并有助于组织 minion 文件。
minionfs_mountpoint: salt://minionfs
对于上述配置,该文件将在minionfs目录下可用– salt://minionfs/m1/var/log/mylog.txt
MinionFS 高级选项
MinionFS 还提供了一个选项来启用/禁用来自某个 Minion 的推送文件的可用性。选项是minionfs_whitelist,启用minion和minionfs_blacklist,禁用minion。
minionfs_whitelist: - webserver - develop* - ‘mail\d+.mysite.com' minionfs_blacklist: - testing
在上面的配置中,除了testing之外的所有minion都可以使用minionFS共享文件。
-
网络服务器1
-
id 与正则表达式匹配的 Minions develop *
-
id 与正则表达式mail\d+.mysite.com匹配的 Minions 。
-
测试
在下一章中,我们将学习如何将 Cron 与 Salt 结合使用。