SaltStack Salt
Salt 文件服务器是一个无状态的 ZeroMQ 服务器。它内置于 Salt Master 中。 Salt 文件服务器用于将文件从 master 分发到 minions。它包含不同的模块。本章让我们了解salt文件服务器,它的配置,salt文件服务器的相关模块,如何在python中访问salt文件服务器等。
文件服务器后端
文件服务器后端允许 Salt 文件服务器充当与本地文件系统、Git 版本控制系统等其他文件服务器的透明接口。
可以通过在主文件中使用以下配置来启用 Git 文件服务器后端。
要启用多个后端文件系统,我们可以使用以下配置。
fileserver_backend:
-roots
-git
我们还可以使用相应后端服务器的特定部分为不同的后端服务器指定附加选项。
本地文件系统
为了使用这个s系统,我们必须使用下面的代码。
file_roots:
base:
-/srv/salt/prod
Git 文件系统
为了使用这个系统,我们必须使用以下代码。
gitfs_remotes:
-https://github.com/sample/sample1.git
请求文件
Salt 可以选择为特定环境请求文件。
salt://path/to/file?saltenv = base
这里,环境是使用 root 选项定义的。
文件服务器配置
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
cp.get_file 函数可用于在 minion 上从 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
cp.get_dir 函数可用于在 minion 上从 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 作为文件服务器。