Distribution
如何自動化複雜的軟體分發?
我們的客戶有解決方案,其中包括多個相互合作的產品。當我們更新解決方案的任何部分時,我們必須為每個作業系統(XP、Windows 7、Windows Server 2008 等)提供管理員指南。指南告訴你:
- 更新前應該停止哪些服務和程序
- 應該備份哪些文件
- 應該更新哪些配置鍵
- 應該解除安裝哪些程序/模組
- 應該安裝哪些程序/模組
- 如何檢查更新是否成功
- 恢復步驟
- ETC
基本上,我們將安裝文件放在網路文件夾中,並提供應該在客戶希望更新的工作站上執行的 powershell 腳本。此腳本可能相當複雜,並且在安裝之間可能會發生巨大變化。
我想有沒有任何平台可以簡化這種分發?
沒有任何“靈丹妙藥”可以為您處理這些事情。我會懷疑任何告訴你有的人。
我來自使用簽入 VCS 的建構腳本的背景,所以我的偏見可能會在這裡顯示。
我將討論其他人提到的幾個項目:
Windows Installer 乍一看確實很有吸引力,但它不是“免費午餐”。如果您選擇建構 Windows 安裝程序包,您只需將腳本中的依賴項和邏輯封裝到安裝程序包中,可能會有很多醜陋,例如大量的自定義操作。實際上,您將使用 Windows Installer 作為腳本環境,其中包含許多內置的怪癖和限制。
如果您使用配置管理系統(Desired State Configuration、Puppet 等),您仍然需要對依賴項和邏輯進行建模。使用配置管理系統,我敢說您將遇到平台描述您的依賴關係的能力的限制,此時您無論如何都需要補充腳本。
我認為您的 Powershell 腳本已經走上了正確的道路。我會對腳本進行評論,並且我會非常努力地建構一個可以處理所有各種安裝場景的腳本(或者更有可能是從單個中央腳本呼叫的較小腳本套件)。我會使用版本控制軟體來維護這些腳本。只要您從不透明的二進制 blob 安裝的產品可行,我將建構測試邏輯來驗證這些安裝程序是否實際工作。