如何记录对 Linux 机器所做的调整,以便在其他机器上重复相同的步骤、进行文档记录和撤消

如何记录对 Linux 机器所做的调整,以便在其他机器上重复相同的步骤、进行文档记录和撤消

我正在寻找方法或自动化工具来记录我对 Linux 机器所做的调整。

这些调整将是:

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

我将使用这种记录技术来:

  • 允许复制这些步骤,以便在另一台 Linux 机器上重复执行,例如,如果我要为多台机器设置相同的应用程序
  • 为记录步骤提供基础
  • 帮助提供撤消过程,以撤消更改并将机器恢复到进行更改之前的状态

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

  • 因为我们经常会面临压力,需要接连输入大量命令来构建、安装等
  • 因为似乎有很多基于 Linux 的软件不能完全按照制造商的意图运行,或者说明不完整、含糊不清。(不过,随着像这个和 howtoforge.com 这样的网站的出现,情况正在好转)
  • 因为Linux管理员、开发人员不太擅长记录他们所做的事情,或者不愿意,或者觉得这是一项无聊的任务,认为它不重要

我所寻找的功能包括:

  • 记录输入的命令和输出
  • 记录对系统造成的变化
  • 也许可以使用 BeyondCompare 风格的比较工具来智能地比较更改前后的文件系统分区

答案1

您刚刚描述了配置管理和工具,例如木偶或者厨师

其原理是使用领域特定语言以模块化方式编写配置。然后可以对这些模块进行分层,以使主机达到所需的完整或部分状态并保持该状态。它们还构成了您的文档,因为 DSL 应该易于阅读和重复使用。与修订控制结合使用时,您可以更精细地控制更改。大多数实现都包括可扩展的日志记录方法。

您的要求通常缺少的唯一功能是真正捕获状态并促进撤消操作的能力。CM 可以通过记录更改和存储替换的文件在某种程度上简化这一点,但我不知道有任何系统会提供类似快照的回滚。不过,您可能能够通过虚拟化和备份实现这一点。

答案2

为了 ”记录输入的命令和输出“部分,您可以使用命令脚本

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.

记录你所做的事情真的很有用。

答案3

与其这样,为什么不直接通过 Puppet 之类的配置管理系统对服务器进行所有更改呢?这就是我管理机器的方式,这样我就可以确保负载平衡集群中的所有机器都是相同的。

相关内容