我想要对整个切片进行版本控制

我想要对整个切片进行版本控制

我从 Slicehost 租了一个分片(即 VPS)。我花了一两天时间安装/usr我最喜欢的软件包、/etc配置和初始化脚本等。现在我想要:

  1. 将整个设置保存在某处(例如,加载到另一台机器上)。
  2. 查看我对哪些文件做了哪些更改
  3. 恢复更改、标记修订版本以及所有其他良好的版本控制功能

保存磁盘映像可得到 (1),但不能得到 (2) 和 (3)。

使用 Subversion ( svn import / svn://someotherhost) 可能会让我获得这三种功能,但如果我实际尝试将项目签出到/root 拥有区域中并维护 .svn 目录,我预计会出现问题。要将我的设置加载到新切片上,我需要先在其上安装 svn 客户端。

有什么好方法可以实现我想要做的事吗?

答案1

我假设你正在使用其中一个主要发行版,如果我需要做和你一样的事情,我会使用 git 来处理与配置文件(/etc、/usr/local/etc 等)相关的所有内容,除非你正在编译自己的软件包,否则我会避免对 bin 文件进行版本控制。

我将使用每个发行版的本机包管理器来复制相同包配置文件的安装。

对于基于 Debian 的发行版来说,这真的很容易:

dpkg --get-selections | grep '[[:space:]]install$'| awk '{print $1}' > packages-installed

然后在新系统中:

cat packages-installed | xargs sudo apt-get install

问候

答案2

我期望 git 或其他分布式 vcs 在这方面会比 svn 做得更好。您可能想查看 etckeeper 的源代码,它基本上使用 git 和其他几个 dvcs 跟踪 /etc。Etckeeper 可能可以扩展或修改以跟踪整个文件系统。

答案3

我看到两个不太明显的解决方案。

备份使用备份电脑,让您轻松查看以前的版本并恢复它们。可以远程或本地完成。

使用配置管理木偶。我不对服务器上的所有文件进行版本控制。我对 puppet 模块和清单进行版本控制,这些模块和清单描述了应该对服务器应用哪些更改。我完全避免手动接触服务器,如果我这样做,我会在 puppet 中复制更改。

我两者都用。配置来自 puppet,使用 git 进行版本控制,而“用户数据”(提供的网页、主目录等)的版本控制由 backuppc 处理。

答案4

你可以放/etc 进入 SVN. 不过,我会对 /usr 使用不同的备份方法。

相关内容