📅  最后修改于: 2020-10-31 14:23:08             🧑  作者: Mango
Salt文件服务器是无状态的ZeroMQ服务器。它内置在Salt主机中。 Salt文件服务器用于将文件从主服务器分发到奴才。它包含不同的模块。在本章中,让我们了解盐文件服务器,其配置,与盐文件服务器相关的模块,如何在Python访问盐文件服务器等。
文件服务器后端允许Salt文件服务器充当其他文件服务器(例如本地文件系统,Git版本控制系统等)的透明接口。
可以通过在主文件中使用以下配置来启用Git文件服务器后端。
fileserver_backend:
- git
要启用多个后端文件系统,我们可以使用以下配置。
fileserver_backend:
- roots
- git
我们还可以使用相应后端服务器的特定部分为其他后端服务器指定其他选项。
为了使用该系统,我们必须使用以下代码。
file_roots:
base:
- /srv/salt/prod
为了使用该系统,我们必须使用以下代码。
gitfs_remotes:
- https://github.com/sample/sample1.git
Salt可以选择请求特定环境的文件。
salt://path/to/file?saltenv = base
在这里,环境是使用roots选项定义的。
Salt文件可以在许多根目录中分配,并且可以通过指定文件路径和搜索环境来访问。各个环境可以跨越多个目录根。
默认环境为基本。未定义此环境时,将定义该环境并将其用于下载文件。
file_roots:
base:
- /srv/salt/base
您还可以使用多个环境,如下面的代码所示。
file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
- /srv/salt/base
CP模块是操纵Salt文件服务器的主要模块。 salt-cp命令还可用于分发Salt文件服务器提供的文件。
可以在小服务器上使用cp.get_file函数从主服务器下载文件。如以下代码块中所示定义它。
salt '*' cp.get_file salt://vimrc /etc/vimrc
上面的命令指示所有Salt小兵下载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
可以在小服务器上使用cp.get_dir函数,以从主服务器下载整个目录。在以下代码块中定义。
salt '*' cp.get_dir salt://etc/mysql /etc
cp.get_dir支持模板渲染和gzip压缩参数。如果需要,也可以分配。
Salt提供了一个有助于访问Salt文件服务器的Python模块。 salt / fileclient.py模块用于建立从奴才到主人的通信。
获取文件的示例代码如下-
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在盐环境中运行时可用。否则,我们应该提供配置路径– / etc / salt / minion 。
path指盐文件服务器中源文件的路径。
dest是文件的目标路径。
saltenv是指环境
在下一章中,我们将了解如何将Git用作文件服务器。