将Linux系统的基础扩展到当前状态以生成playbook / dockerfile / shell脚本?

我正在寻找一种方法来生成一个安装脚本,将Linux系统的当前状态区分为基本映像(例如Docker映像)。 输出将是从基本映像重新创build当前状态的操作列表 – 通常是一堆apt-get install和一堆文件修补程序应用程序。

这是否可行? 今天有这样的事情吗?

是的,这是可能的 。

使用蓝图

Blueprint是一个简单的configurationpipe理工具,可以对服务器进行反向工程。 它会指出你手动完成的工作,将它存储在本地的Git仓库中,生成能够重新创build工作的代码,并帮助你将这些改变部署到生产环境中。

http://devstructure.com/blueprint/blueprint-diff.1.html

我曾经使用过由EMC出品的HomeBase的灾难恢复产品,这种产品就是这样做的(虽然从来不支持apt / dpkg打包的linux)。 使其可靠工作是困难的。

如果你很乐意重新安装一组相同的软件包,那么你应该能够很容易地将手动安装的软件包列出来: https : //askubuntu.com/questions/2389/generating-list-of-manually-安装的程序包和-查询-个体包装

我不知道有什么简单的解决scheme比较/ etc内容与基地/等内容。 即使这样,一些更改可能来自软件包安装,您必须小心不要多次应用这些更改。

你最好的select是手动重build系统,但要小心地logging下所有的操作 – 可能使用一些版本控制系统来跟踪/等等的变化。 如果你不能手动重build,那么你总是可以考虑创build一个docker基础镜像: https : //docs.docker.com/articles/baseimages/