- 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**作为文件服务器。