假设您在服务器上运行第三方程序。
要配置它,您需要登录,应用一些 CLI 命令,然后再次离开。
每次执行此操作时,您还会将命令复制并粘贴到 git 中的某个文件中,以便将来您可以弄清楚配置了什么,并且在需要时还可以再次配置服务器。
这很容易出错。
我知道人们发明了 Puppet 之类的东西来避免这个问题,但据我所知,Puppet 依赖于模块,您可以使用这些模块定义状态,然后执行幂等操作。这意味着您没有适用于所有事物的 Puppet 模块,并且您拥有的模块可能无法完成您想要的所有配置。
讲完这个长篇故事后:
是否有适当的方法来“记录”您运行的命令,以便您可以运行它们并同时记录运行情况?
答案1
如果你想按照老方法做,你可以使用脚本(1)记录您的会话。
答案2
您所描述的问题正是人们在某些时候决定不再依赖手动命令和使用交互式(GUI)工具的管理员的原因。
您希望能够以更有条理的方式重复您所做的事情,而不是遵循最新发布/更改/危机后可能未更新的清单。
尽管这看起来是个简单的问题,并且第一种方法是列出为实现当前状态而发出的所有命令的长列表,这似乎是一个好主意,但经过一番思考后,您可能意识到,这样的列表也不是最好的解决方案。该列表可能还包含诸如尝试、错误、失败、恢复并尝试其他操作、输入错误、再次重复等您不一定想要或需要重复的步骤。
维基百科对人们为解决这个问题而创建的几种工具进行了很好的总结: https://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software
这些都有一个学习曲线,而且看起来比你认为需要的更复杂,但相信我,投入一些时间和精力,你就会明白为什么其中许多被广泛用于解决你现在面临的问题。