将 etckeeper 创建的存储库推送到远程 Gitlab 服务器,欢迎提出建议

将 etckeeper 创建的存储库推送到远程 Gitlab 服务器,欢迎提出建议

我正在使用etckeeper,它似乎是一个不错的产品。我仅使用它来跟踪本地 /etc 文件系统,但最近我想到了一个想法 - 创建中央 Gitlab 存储库并在那里存储所有节点 /etc 存储库。

问题是我怎样才能做到这一点?

我注意到在 etckeeper 的配置中,有一个名为:PUSH_REMOTE="" 的变量,但是我是否必须为每个服务器创建单独的存储库,或者我可以使用一个存储库并将其中的所有服务器组合起来?也许我可以使用分支?或者不同的文件夹?

欢迎任何建议。我会尝试以手动方式完成它,如果它有效,我会考虑如何通过 Puppet 或 Ansible 以自动化方式完成它。

提前致谢。

答案1

我想我找到了解决方案。正如我之前提到的分支,我发现这是实现我想要的最简单的方法。

所以我做了几个简单的步骤:

  1. 我创建了 SSH RSA 密钥对,以便能够与 Gitlab 实例进行通信。
  2. 我在系统中安装了 etckeeper 和 git 软件包。 (对于 Ubuntu/Debian 系统,本地存储库是自动创建的)对于 RedHat 系统,我必须在 /etc 目录中使用 etckeeper init 来创建存储库。
  3. 在 /etc/etckeeper/etckeeper.conf 中,我添加了“origin”作为 PUSH_REMOTE="origin" 变量。
  4. 存储库完成后(可以使用 git status 检查),我创建了名为机器的 FQDN 名称的本地分支,并使用 git checkout -b test.home.lan 切换到它
  5. 然后我使用 git remote add <gitlab_url> 将远程存储库添加到本地git客户端
  6. 最后我使用 git push --set-upstream origin test.home.lan 在本地分支和远程分支之间建立同步连接。

使用这种方法,每个节点都有自己的分支。

我希望这会对某人有所帮助。

相关内容