无需镜像备份即可创建 Linux 机器的精确副本

无需镜像备份即可创建 Linux 机器的精确副本

我是一名 Web 全栈开发人员。作为我工作的一部分,有时我需要管理开发和生产服务器。

我希望生产服务器和开发服务器的包和配置尽可能完全相同。

所以基本上,我希望在需要时拥有旧服务器的精确副本。

我不想使用磁盘映像,因为我无法在云提供商之间传输磁盘映像。(有时我需要它)

为了满足我的需求,我使用了一个安装特定版本软件包的 shell 脚本。例如:

aptitude install -y apache2=2.4.18-2ubuntu3.1
aptitude install -y libapache2-mod-ruid2=0.9.8-3
... and so on

所以我想知道……

  • 这是一个好方法吗?
  • 还有更好的解决办法吗?
  • 软件包的特定版本在存储库中托管了多长时间?

答案1

@kormoc 以你写的方式回答了你的问题。但你用 docker 标记了它,虽然你的问题不直接涉及 docker,但我将给出解决这个问题的 docker 方法:

您想要的是从开发到生产都拥有相同的环境,而不是相同的软件包,这只是解决问题的一种方法。

不管您的服务器上安装了什么,Docker 都允许您将运行所需的所有内容打包到您的应用程序中。

你可以在 Dockerfile 中写下你需要的每个包:

FROM ubuntu:trusty
RUN aptitude install -y apache2=2.4.18-2ubuntu3.1
RUN aptitude install -y libapache2-mod-ruid2=0.9.8-3

... 等等

然后你从中创建一个镜像并在你想要的服务器中运行这个镜像。唯一的要求是安装docker。

问候

相关内容