管理多个配置 (/etc) - 使用 VCS?

管理多个配置 (/etc) - 使用 VCS?

我有一台机器需要有两种需要维护的配置(该机器偶尔会在两个环境之间移动,并且在每个环境中具有不同的角色)。

注意:这不是企业环境,而是家庭环境。

我正在考虑使用 VCS(我喜欢git),可能使用etckeeper.然而,我意识到我的工具箱是有限的,而且我的 VCS 锤子可能会导致这个问题被识别为钉子,而实际上它可以更好地识别为其他东西。

这是解决问题的正确方法吗?

答案1

您有多种选择来解决您的问题:

  • 使用 VCS 并确保文件的权限和所有权信息也被跟踪
  • 使用 KVM 实例作为您的第二个环境,即如果您有足够的硬盘空间,您可以在那里安装第二个 Linux 实例
  • 设置双引导配置,以便在分区 X 上为第一个环境安装 Linux 系统,在分区 Y 上为第二个环境安装 Linux 系统

您的选择取决于品味,并且取决于您环境的细节。也许您的 CPU 不支持虚拟化、空间存在问题或者您不想在移动到另一个环境时重新启动计算机。

答案2

你可以看看交换机配置它是专门为处理多个 /etc 配置并在需要时从一种配置切换到另一种配置而设计的。

您必须在/etc/switchconf目录中创建 2 个配置,我们将它们称为entreprisehome。在每个目录中,您必须创建需要更改配置文件的 etc 子目录,并将其存储到文件中,例如:

/etc/switchconf/enterprise/etc/network/interface  # in which you store your enterprise network interface configuration

/etc/switchconf/home/etc/network/interface   # in which you store your home network interface configuration

如果您需要在切换配置之前或之后执行一些脚本,可以将它们存储在/etc/switchconf/before.d和中/etc/switchconf/after.d

最后,要从一种配置切换到另一种配置,只需启动switchconf enterprise以使用企业配置或switchconf home使用家庭配置即可。

答案3

对于需要在环境之间移动的计算机,我会尝试使用一组文件/etc,并使用 shell 脚本动态设置尽可能多的更改配置。例如,网络配置可能不同,因此使用mapping指令/etc/network/interfaces或脚本中的条件句/etc/network/if-up.d和兄弟姐妹。

如果某些静态文件需要更改,请将两套保留在两个不同的目录中,例如

/etc/configuration/work/xorg.conf
/etc/configuration/home/xorg.conf
/etc/configurations/current -> work
/etc/X11/xorg.conf -> /etc/configurations/current/xorg.conf

这样,您可以通过更改/etc/configurations/current符号链接并重新启动受影响的服务来在配置之间切换。

您也许能够利用某些子系统中已经存在的机制,例如 PCMCIA 方案。

相关内容