为了帮助支持我们的客户并简化我们的工作,我们的支持团队创建并维护了许多小型(通常少于 50 行)专有脚本,这些脚本使用多种不同的语言编写,以简化常规任务。这些脚本目前存储在许多地方,从内部 wiki 到个人硬盘上的 .txt 文件、内部服务器等,并且很难找到每个脚本的最新版本。
实际上,这些需要分开保存,并且它们之间并没有足够的关联性可以放入共享源存储库,但又不够重要,没有必要为每个存储库创建单独的 RCS 存储库。
您是否知道任何适合管理大量此类脚本的软件或做法?理想情况下,这将提供以下功能:
- 修订控制
- 网络访问(通过 HTTP 下载单个脚本)
- 验证
- 加密
如果没有标准的软件或标准实践,我想我只能自己创建一些简单的东西了。
答案1
我不同意你的观点,即脚本对于版本控制来说不够重要。它们通常非常重要(例如,登录脚本映射网络驱动器),而且就像你说的,它们通常只存在于服务器上而没有任何版本历史记录,所以如果你搞砸了,你就完蛋了。
我们将所有脚本保存在 Subversion 存储库中,这对我们来说非常有效。好处非常明显。
- 这是这我们所拥有的任何脚本的权威来源。毫无疑问,上周有人对其进行了更新,但没有与所有人分享这一变化。
- 脚本的更改会被跟踪,如果出现问题可以恢复。任何违反脚本的人都会受到惩罚。
版本控制系统非常轻量级,您可以搭载另一个系统(如果您有内部开发人员,请在他们的服务器上创建一个存储库)或者在需要时创建运行轻量级 Linux 发行版的虚拟机。
顺便说一句,Server Fault 博客上最近有一篇关于此问题的文章。一探究竟。
答案2
在过去的类似情况下,我在中创建了一个存储库$scm_of_choice
,其中为每个相关组(admin_scripts
、sql_scripts
等)创建了子目录。
或者,根据您讨论的脚本数量,您可以为每个问题域创建一个存储库。
答案3
因为您想要跟踪版本,所以自然要使用版本控制系统 - 有几个 - svn,git 等等。
对于网络访问,您可能需要安装一些额外的软件,但这可以很容易地完成。(对于 svn,您可以安装启用 ssl 的服务器,git 使用 ssh)