SaltStack - Git 作为文件服务器


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

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

使用 Git 的 Salt 服务器先决条件

salt 服务器使用 Git 作为文件服务器的最低要求如下 -

  • pygit2
  • 德威

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 安装在 master 上,如下所示。

  • 基于Fedora的系统

yum install GitPython
  • 基于Ubuntu的系统

apt-get install python-git

安装德威

使用 yum 命令可以轻松地将 Dulwich 安装在 master 上。

  • 基于Fedora的系统

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

apt-get install python-dulwich

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

后端配置

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

fileserver_backend:
   - git

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

gitfs_remotes 配置

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

简单的 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