SaltStack - Salt文件服务器

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

文件服务器后端

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

可以使用主文件中的以下配置启用Git文件服务器后端.

 
 fileserver_backend:
  - git

要启用多个后端文件系统,我们可以使用以下配置.

 
 fileserver_backend:
  -  roots 
  -  git

我们还可以为使用不同的后端服务器指定附加选项相应后端服务器的特定部分.

本地文件系统

对于使用此系统,我们是ha我可以使用以下代码.

 
 file_roots:
 base:
  -/srv/salt/prod

Git文件系统

要使用此系统,我们必须使用以下代码.

 
 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模块

CP模块是操作的主要模块Salt文件服务器. salt-cp 命令也可用于分发Salt文件服务器提供的文件.

GET_FILE

cp.get_file 函数可以在minion上用来从master下载文件.它的定义如下面的代码块所示.

 
 salt'*'cp.get_file salt://vimrc/etc/vimrc

以上命令指示所有Salt minions下载 vimrc 文件并将其复制到/etc/vimrc .

启用模板

您可以在get_file中启用模板选项,如下所示 :

 
 salt'*'cp.get_file"salt://vimrc"/etc/vimrc template = jinja

Apply Compression

要使用压缩,请使用 gzip 命名参数.有效值是从1到9的整数,其中1是最小压缩,9是最大值.

命令定义如下 :

 
 salt'*'cp.get_file salt://vimrc/etc/vimrc gzip = 5

GET_DIR

可以在minion上使用 cp.get_dir 函数从主服务器下载整个目录.它在以下代码块中定义.

 
 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)

这里,

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

  • 路径是指到盐文件服务器中源文件的路径.

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

  • saltenv 指的是环境

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