我为设置我的开发机器准备了很多软件包和配置。我的团队中还有其他开发人员,我希望他们一开始就拥有相同的设置,以确保工具的兼容性和可用性。
如何自动配置其他开发机器?
我发现 Puppet 和 Chef 可以对多台服务器执行相同的操作。我会毫不犹豫地学习或使用它们,除非它们对我的用例来说太过分。
我还发现 Remastersys 使用自定义实时光盘重复了我的安装,但我期待:
- 在已安装的系统上运行我的设置。
- 与发行版无关。
- Remastersys 似乎不太合适。
那么,我应该寻找什么工具来完成它?
示例用例:
- 想要在全新安装 Ubuntu 或 Arch 后安装 x、y、z 包。
- 我可以使用不受发行版限制的发行版吗?[让我的开发人员选择发行版 - 仍可保留相同的软件包,无需额外努力。]
- 配置简单服务器,如 MySQL 或 PostgreSQL。
- 经常使用 Meld、Google Chrome、Firefox 等工具。
我的用例不是类似服务器的用例。我只想重复我的设置,使我与底层系统细节脱钩。
Shell 脚本可以作为一种选择,但是维护像 Shell 脚本这样低级的东西确实很困难。
我认为这是一个需要解决的普遍问题。一定是我遗漏了什么。
答案1
您确实需要某种形式的配置管理。Puppet、Chef、CFengine 就是其中之一。每种配置管理的基本设置都有些简单,但很快就会变得复杂。每种配置管理都有许多不同的操作方法。
不要对发行版一无所知。能够使用不同的发行版固然很好,但不要指望兼容性。不同的发行版有不同版本的 apache、php、mysql 等。要对发行版一无所知,您需要愿意为每个发行版打包并维护这些包(以使您的关键软件在各个发行版中保持相同的版本)。
我知道您在这里特别询问您的开发环境,但保持生产环境与开发环境同步也很重要。没有人喜欢将代码推送到生产环境后才发现您一直在针对尚未在生产中推出的库版本进行开发。保持不同环境同步对于减少停机时间至关重要。