SaltStack – 盐文件服务器

SaltStack – 盐文件服务器


Salt 文件服务器是一个无状态的 ZeroMQ 服务器。它内置于 Salt Master 中。Salt 文件服务器用于将文件从 master 分发到 minions。它包含不同的模块。本章让我们了解salt文件服务器,它的配置,与salt文件服务器相关的模块,如何在python中访问salt文件服务器等。

文件服务器后端

文件服务器后端允许 Salt 文件服务器充当与本地文件系统、Git 版本控制系统等其他文件服务器的透明接口。

可以通过在主文件中使用以下配置来启用 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

在这里,环境是使用 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 文件服务器的主要模块盐的cp命令也可以用于分发由盐业文件服务器提供文件。

获取文件

cp.get_file功能可以在仆从可以用来从主机下载文件。它的定义如下面的代码块所示。

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功能可以在仆从被用来从主下载整个目录。它在以下代码块中定义。

salt '*' cp.get_dir salt://etc/mysql /etc

cp.get_dir支持模板渲染和gzip压缩参数。如果你愿意,你也可以分配。

文件客户端模块

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)

这里,

  • 当模块在 salt 环境中运行时, opts 可用。否则,我们应该提供配置路径 – /etc/salt/minion

  • path指的是salt文件服务器中源文件的路径。

  • dest指的是文件的目标路径。

  • saltenv指的是环境

在下一章中,我们将了解如何使用Git作为文件服务器。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁