SaltStack - 使用 MinionFS 作為檔案伺服器



MinionFS 是 Salt 為 Minion 提供的一種特殊檔案伺服器,用於 Minion 之間交換檔案。MinionFS 提供的檔案是由 Minion 故意共享的檔案。要共享檔案,Minion 必須按照以下步驟操作。

  • 源 Minion 必須使用 cp.push 函式將檔案推送到 Salt Master。

  • 源 Minion 推送檔案後,任何其他 Minion 都可以使用 MinionFS 檔案伺服器訪問已部署的檔案。

啟用推送

預設情況下,Minion 向 Master 推送檔案的功能是停用的。要接受來自 Minion 的檔案,Master 的配置檔案中需要設定“file_recv”選項,其值必須設定為True。預設情況下,“file_recv”的值為false

file_recv: True

啟用該選項後,重新啟動 Master 服務。

推送檔案

Minion 可以將檔案推送到 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 後端設定中新增minion,如下面的程式碼塊所示。

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 共享檔案。

  • Webserver1

  • ID 匹配正則表示式 develop * 的 Minion

  • ID 匹配正則表示式 mail\d+.mysite.com 的 Minion。

  • Testing

在下一章中,我們將學習如何使用 Salt 與 Cron。

廣告
© . All rights reserved.