- SaltStack 教程
- SaltStack - 首頁
- SaltStack - 概述
- SaltStack - 架構
- SaltStack - 競爭對手
- SaltStack - 安裝
- 建立簡單的環境
- SaltStack - 訪問控制系統
- SaltStack - 作業管理
- SaltStack - Salt檔案伺服器
- SaltStack - 使用Git作為檔案伺服器
- 使用MinionFS作為檔案伺服器
- SaltStack - 使用Salt與Cron
- SaltStack - 遠端執行
- 配置管理
- SaltStack - 日誌記錄
- SaltStack - 透過SSH使用Salt
- Salt用於雲基礎設施
- SaltStack - Salt代理Minion
- SaltStack - 事件系統
- SaltStack - 編排
- SaltStack - Salt包管理器
- SaltStack - Python API
- SaltStack - 工作示例
- SaltStack 有用資源
- SaltStack - 快速指南
- SaltStack - 有用資源
- SaltStack - 討論
SaltStack - Salt檔案伺服器
Salt檔案伺服器是一個無狀態的ZeroMQ伺服器。它內置於Salt master中。Salt檔案伺服器用於將檔案從master分發到minion。它包含不同的模組。本章將介紹Salt檔案伺服器,其配置,與Salt檔案伺服器相關的模組,如何在Python中訪問Salt檔案伺服器等。
檔案伺服器後端
檔案伺服器後端允許Salt檔案伺服器作為其他檔案伺服器(如本地檔案系統、Git版本控制系統等)的透明介面。
可以透過在master檔案中使用以下配置啟用Git檔案伺服器後端。
fileserver_backend: - git
要啟用多個後端檔案系統,可以使用以下配置。
fileserver_backend: - roots - git
我們還可以使用相應後端伺服器的特定部分為不同的後端伺服器指定附加選項。
本地檔案系統
要使用此係統,我們必須使用以下程式碼。
file_roots:
base:
- /srv/salt/prod
Git檔案系統
要使用此係統,我們必須使用以下程式碼。
gitfs_remotes: - https://github.com/sample/sample1.git
請求檔案
Salt可以選擇請求特定環境的檔案。
salt://path/to/file?saltenv = base
這裡,環境使用roots選項定義。
檔案伺服器配置
Salt檔案可以分配在許多根目錄中,並透過指定檔案路徑和要搜尋的環境來訪問。各個環境可以跨越多個目錄根。
環境
預設環境為base。此環境已定義,並在未指定其他環境時用於下載檔案。
file_roots:
base:
- /srv/salt/base
您還可以使用多個環境,如下面的程式碼所示。
file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
- /srv/salt/base
CP模組
CP模組是操作**Salt檔案伺服器**的主要模組。**salt-cp**命令也可用於分發Salt檔案伺服器提供的檔案。
GET_FILE
可以在minion上使用**cp.get_file**函式從master下載檔案。其定義如下面的程式碼塊所示。
salt '*' cp.get_file salt://vimrc /etc/vimrc
以上命令指示所有Salt minion下載**vimrc**檔案並將其複製到** /etc/vimrc**。
啟用模板
您可以按如下方式在get_file中啟用模板選項:
salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja
應用壓縮
要使用壓縮,請使用名為**gzip**的引數。有效值是從1到9的整數,其中1是最小壓縮,9是最大值。
命令定義如下:
salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5
GET_DIR
可以在minion上使用**cp.get_dir**函式從master下載整個目錄。其定義在下面的程式碼塊中。
salt '*' cp.get_dir salt://etc/mysql /etc
**cp.get_dir**支援模板渲染和gzip壓縮引數。如果需要,您也可以賦值。
FILECLIENT模組
Salt提供了一個Python模組,用於訪問Salt檔案伺服器。**salt/fileclient.py**模組用於設定從minion到master的通訊。
獲取檔案的示例程式碼如下:
import salt.minion import salt.fileclient def get_file(path, dest, saltenv = ‘base'): client = salt.fileclient.get_file_client(__opts__) return client.get_file(path, dest, true, saltenv)
這裡:
opts在模組在Salt環境中執行時可用。否則,我們應該提供配置路徑 – ** /etc/salt/minion**。
**path** 指的是Salt檔案伺服器中原始檔的路徑。
**dest** 指的是檔案的目標路徑。
**saltenv** 指的是環境
在下一章中,我們將瞭解如何使用**Git**作為檔案伺服器。