如何logging对Linux机器的调整,以便在其他机器上复制相同的步骤,用于文档和撤消

我正在寻找方法或方法和自动化工具来logging我对Linux机器的调整。

这种调整将是:

  • 通过apt-get安装新的软件/软件组件,包括强制安装特定的版本
  • 安装Perl模块
  • 使用make install,使过程达到上述项目的目标
  • path和环境variables的变化
  • 几乎可以对Linux机器进行任何types的更改
  • logging可能导致上述任何步骤的错误

我会用这种logging技术来:

  • 使这些步骤可以复制,在另一台Linux机器上重复,例如,如果我为多台机器设置相同的应用程序
  • 为logging步骤提供基础
  • 帮助提供撤销过程,撤消恢复机器的更改返回到更改之前的状态

为什么我认为这种方法或工具是必要的?

  • 因为我们经常会面临压力,一个接一个地input大量的命令来build立一些东西,然后安装等等
  • 因为似乎有很多基于Linux的软件,在制造商意图或指令不完整的情况下,这并不是很有效。 (尽pipe如此,有这样的网站和howtoforge.com)
  • 由于Linuxpipe理员,开发人员不擅长logging他们做了什么,或者不情愿,或者觉得这是一个无聊的任务,把它当作不重要的

我将要寻找的function将包括:

  • logging命令types和输出
  • logging由此产生的变化
  • 也许是一个BeyondCompare样式比较工具,智能地比较变更前后的文件系统分区

您刚刚介绍了configurationpipe理和工具,如Puppet或Chef 。

原则是,您可以使用特定于域的语言模块化地编写configuration。 然后可以将这些模块分层,以便使主机处于所需的完整或部分状态,并将其保留在那里。 他们也形成你的文档,因为DSL应该易于阅读和重复使用。 与修订控制结合使用时,您可以更细致地控制更改。 大多数实现包括可以扩展的日志logging方法。

通常从您的要求中缺less的唯一东西是能够真正捕获状态并促成撤消操作。 CM可以通过logging更改和存储replace的文件来简化这一点,但我不知道任何系统将提供类似快照的回滚。 尽pipe你可以通过虚拟化和备份来实现这一点。

对于“ input和输出的logging命令 ”部分,可以使用命令脚本

SCRIPT(1) BSD General Commands Manual SCRIPT(1) NAME script — make typescript of terminal session SYNOPSIS script [-a] [-c COMMAND] [-f] [-q] [-t] [file] DESCRIPTION Script makes a typescript of everything printed on your terminal. It is useful for students who need a hardcopy record of an interactive session as proof of an assignment, as the typescript file can be printed out later with lpr(1). If the argument file is given, script saves all dialogue in file. If no file name is given, the typescript is saved in the file typescript. 

真的很有用,logging你做了什么。

为什么不通过像Puppet这样的configurationpipe理系统来简单地对服务器进行所有更改呢? 这就是我pipe理我的机器的方式,这样我就可以确定我的所有机器在一个负载平衡的群集中是一样的。