所以我们可能都遇到过这种情况:你调试某个问题,却发现这是由你六个月前所做的配置更改引起的,而你却不记得为什么这么做。于是你撤消它并修复了问题,现在又出现了其他问题。哦,是的,现在我记得了!然后你正确地修复了它。
那是因为你没有好好记笔记,你这个傻瓜!但是有什么好办法可以做到这一点呢?
在工程领域,我们有大量软件可以帮助我们检测和跟踪变更。源代码控制、代码审查等等。每个变更都会被跟踪,每个变更都需要注释。典型的工程部门需要良好的注释,以便在六个月后你弄清楚为什么会这样时,你可以使用历史“责备”功能或二进制搜索构建来查明问题所在。这些工具是非常有效的沟通工具和历史记录。
但在服务器领域,我们有 500 种不同的服务,每种服务都有不同的配置方式。尽管它们可能有文本表示,但它们并不总是具有文本格式(考虑设置文件夹的权限或更改页面文件位置)。
在我们的环境中,我们将可以检查的配置文件签入 Perforce,但这样的文件非常少。无法准确检查 Active Directory DB……尽管也许可以检查差异转储...
过去我曾尝试在我们的 wiki 中保留手动更改日志,但保持这种纪律非常困难(我知道,这不是一个好的借口,但这确实很难)。
我的问题:您使用什么策略和工具来解决跟踪服务器配置更改的问题?
- 更新 -
注意:我并不是在寻找共享笔记工具(我熟悉 OneNote 等),而是寻找专门用于帮助跟踪服务器更改的自动化工具。没有全面的工具可以跟踪服务器配置更改,但也许有一些适用于特定应用程序(如 GPO)的工具。
我也非常感兴趣具体策略您认为很有用。“我们在 Sharepoint 中共享笔记”这个说法很模糊。您如何保持纪律?您使用什么格式来跟踪更改?您如何组织更改数据?我真的很想了解示例和想法。
答案1
在 Linux 领域,人们正在采取几种不同的策略:
- 配置约束系统, 喜欢CF引擎或者木偶或者厨师。这些类似于 Windows GPO。重点是,所有服务器配置都刻意记录在一个地方,并且您知道策略是在什么粒度(服务器机房、组、特定服务器)下实施的。这并不能完全让您免于“六个月前到底有什么不同?”,但它确实可以让您删除服务器配置并从头开始重建。您可以将 cfengine 和 puppet 策略置于修订控制之下以回答这个问题。
- 修订控制 /etc。通常,Linux 程序将其配置存储在一个位置 /etc。大胆的人开始编写脚本将 /etc 纳入修订控制。我知道的一个这样的程序是etckeeper:
描述:将 /etc 存储在 git、mercurial、bzr 或 darcs 中 etckeeper 程序是一个让 /etc 存储在 git、mercurial 中的工具, bzr 或 darcs 存储库。它挂接到 APT 以自动提交更改 在软件包升级期间对 /etc 进行的操作。它跟踪该版本的文件元数据 控制系统通常不支持,但这对于 /etc 来说很重要,例如 与 /etc/shadow 的权限相同。它非常模块化且可配置,而 如果你理解版本控制的基本知识,那么使用起来也很简单 控制。
答案2
在这种情况下,问题之一是,这实际上是业务流程/技术问题的结合。而且它绝对比仅仅跟踪管理员所做的更改要大。您还需要留意意外更改,并在管理员或部门之间进行良好的协调,以便 AD 控制器上的更改不会破坏某些部门服务器上的数据库权限设置。也就是说,您的问题是一个大麻烦 :)
在我的组织中,我们花了大约一年时间推出流程和系统来解决这个问题。在业务流程方面,我们组建了一个变更管理团队。根据 SOP,生产环境的所有变更都由他们协调。他们汇编所有变更,以及范围、受影响的系统、受影响的服务等。强制对变更以及推出和回滚计划进行良好的记录。每周召开(公开)会议,讨论即将发生的环境变更,然后发送电子邮件详细说明所有这些变更。此流程的最终目标是,让 IT 部门的每个人都知道正在发生的一切。这有助于防止系统管理员安装内核补丁并重新启动系统等问题,因为这样会破坏时间时钟数据库。
至于技术方面,我只能说 Unix/Linux 的人,因为我不处理 Windows。他们一直在推出 Reductive Labs 的 Puppet,用于所有这些系统的配置管理。简单来说,它是一个客户端/服务器系统,其中一个人在服务器上定义机器配置,客户端每隔一段时间(默认 30 分钟)提取这些机会。此外,如果对本地管理的文件进行任何更改,那么它们也会在那时恢复。我们使用它来管理正在运行的服务、防火墙配置、用户授权等。
我还建议研究一下 TippingPoint 之类的东西。它是一种客户端服务,可以监视系统配置,并在发生更改时发送警报。它让我们这些安全人员最开心。它主要用于跟踪恶意或未发布的更改。
答案3
我现在已经去过 4 或 5 家公司了,具体我也记不清了。
我们都遇到过这个问题。虽然没有人能完全解决这个问题,但在我所在的公司,我认为我们拥有迄今为止最好的策略。
Sharepoint/Wiki/Evernote/PIN
- 分享点
- 随便你怎么抱怨...它有一些非常好的列表功能。
- IP 地址列表
- 存货
- 服务帐户和使用
- 变更通知日志
- 维基百科
- 如何操作
- 长期任务清单
- 印象笔记
- 我和我的搭档用它把我们不想要的一切都放在 Wiki 中
- 更多技术性的操作指南
- 我们都需要看看的便笺
- 本周任务核算
- 承包商任务清单
- evernote clipper 可以轻松截图 AD/权限设置
- 随处可用
- PIN 码
- 密码存储库
答案4
对于 Windows,请查看 Microsoft System Center 系列或该平台的配置和服务管理中的任何其他竞争对手。
更改需要通过一个合适的更改管理程序进行,该程序本身会在更改实际完成之前批准并记录更改。对于初学者来说,这可能是 100% 手动的。使用一些更好的集成工具,您可以要求该工具进行实际更改,并将其“自动”记录到中央配置数据库 - 而不是徒手进入单个服务器的控制台,手动挖掘设置以尝试像牛仔一样解决问题。