SaltStack - Git 作为文件服务器

Git 是一个开源分布式版本控制系统。它可用于跟踪任何文件的更改。Salt 使用 Git 文件服务器从 Git 存储库发送文件。您可以将 Git 配置为 fileserver_backend 列表选项,如果您需要配置一个或多个存储库,则可以使用 gitfs_remotes 选项进行配置。

本章介绍如何安装和配置 Git 文件服务器。在开始安装之前,您必须满足以下先决条件。

使用 Git 的 Salt Server 先决条件

使用 Git 作为文件服务器的 Salt Server 的最低要求如下 −

  • pygit2
  • Dulwich

Pygit2 和 Dulwich 使用主配置文件中的 gitfs_provider 参数进行配置。如果主文件中未配置 gitfs_provider,则 Salt 将优先选择 pygit2(如果有合适的版本),其次是 GitPythonDulwich

安装 pygit2

以下命令用于在基于 Fedora 和 Ubuntu 的系统中安装 pygit2 −

  • 基于 Fedora 的系统

yum install python-pygit2
  • 基于 Ubuntu 的系统

apt-get install python-pygit2

此处,pygit2 支持的最低版本是0.20.3.

安装 GitPYTHON

可以使用 yum / apt 命令 轻松地在主服务器上安装 GitPython,如下所示。

  • 基于 Fedora 的系统

yum install GitPython
  • 基于 Ubuntu 的系统

apt-get install python-git

安装 DULWICH

可以使用 yum 命令轻松地在主服务器上安装 Dulwich。

  • 基于 Fedora 的系统

yum install python-dulwich
  • 基于 Ubuntu 的系统

apt-get install python-dulwich

现在,我们已经安装了 Git 文件服务器的所有依赖项。现在让我们使用 master config 文件中的 fileserver_backend 部分配置此 Git 文件服务器。

后端配置

为了使用 Git 文件服务器,您需要在主配置文件中的 fileserver_backend 列表中添加 Git。描述如下 −

fileserver_backend:
   - git

让我们进一步了解如何在远程配置中配置 Git 文件服务器。

gitfs_remotes 配置

您可以为主文件中的 gitfs_remotes 配置指定 git://、https://、file:// 或 ssh:// 等任意一个或所有 URL。这用于搜索请求的文件。

简单的 https URL 规范定义如下。

gitfs_remotes:
	- https://github.com

ssh 配置可以按如下所示完成。

gitfs_remotes:
   - git@github.com:user1/sample.git
   - ssh://user@domain.tld/path/to/sample.git

现在,我们已经使用两个选项 fileserver_backendgitfs_remotes 配置了 Git 文件服务器。

重新启动主服务器

在主文件中进行所有更改后,现在重新启动主服务器以加载 Git 文件服务器中的所有配置。

多个远程服务器配置

以下命令用于主文件中 gitfs_remotes 中的多个配置。

gitfs_remotes:
   - git://github.com/sample/sample1.git
   - https://github.com/sample/sample2.git
   - file:///root/user/sample

此处,存储库 sample1.git、sample2.gitsample.doc 可能包含以下文件。

sample1.git:
   top.sls
   
sample2.git
   edit/vimrc
   
sample.doc
   edit/vimrc