是否可以将 etckeeper 与单个共享 git 存储库一起使用?

Bre*_*nt 10 version-control git etc etckeeper

我注意到有几个人推荐使用etckeeper将版本控制应用于我的 /etc 目录。

在我看来,默认安装将存储库与您尝试管理的 /etc 放在同一台机器上。这适用于版本控制,但不会提供对文件进行服务器外备份的额外好处 - 或者允许我将 /etc 的部分从一台源机器复制到另一台。

是否可以在中央管理机器上共享单个 git 存储库,以便每个服务器上的 etckeeper 将其数据存储在同一位置?

(我现在用 svn 和一些自定义脚本做类似的事情来提交和恢复文件,但我必须记住在我进行更改时提交它们。)

小智 8

首先,使用 install etckeeper,在 /etc/etckeeper/etckeeper.conf 中为 git 配置。为您的发行版或从源代码中遵循 etckeeper 的安装方法。

很快,您将拥有一个 /etc/.git

现在在你的服务器上,确保你有一个(安全的)repo 来推送到......

 # ssh faruser@farhost     
 # mkdir somedir cd somedir && git init && chmod 700 .git    
 # exit
Run Code Online (Sandbox Code Playgroud)

现在在初始主机上,通过 ssh 将本地存储库推送到服务器:

# cd /etc && git push faruser@farhost:somedir
Run Code Online (Sandbox Code Playgroud)

Somedir 在这种情况下当然可以是相对的(遵循 ssh 约定)

每当您做出影响 /etc 的更改(并且被 etckeeper 窃取到 /etc/.git 中)时,请执行此操作,并且您的机器将拥有本地和机外存储库。

或者设置无密码 ssh 并在 /etc/etckeeper/commit.d/ 中创建一个钩子,这样如果机器始终处于连接状态,它就会自动发生。

  • 这看起来很棒。有没有办法将本地存储库存储在远程存储库的子目录中?我想做类似的事情,使用单个远程存储库来存储多个服务器的(单独的)配置。 (2认同)