[DevOps] 三分鐘全面瞭解Windows平臺的Apt和Yum:Chocolatey

Chocolatey是Windows PowerShell的軟件部署解決方案和軟件包管理器,允許您在網絡中自動執行軟件管理。

在Windows中,管理員最希望自動化的任務之一是部署軟件。 由於敏捷的軟件開發實踐,任何給定軟件的新版本可能比幾年前更頻繁地出現。 這最終意味著要將新版本部署到您的計算機,您需要處於這些版本之上,從中創建包並將它們安裝到您的服務器和工作站。 這可能是一項非常艱鉅的任務。

幸運的是,Chocolatey是一個很好的解決方案,可以為Windows IT專業人員自動執行這些任務,無論是開源還是業務(C4B)版本。 在本文中,我將在演示中使用Chocolatey for Business(C4B)。

安裝Chocolatey客戶端

要從社區存儲庫安裝Chocolatey客戶端,我們只需運行一行PowerShell:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

這將下載並運行PowerShell腳本,將Chocolatey安裝到C:\ ProgramData \ Chocolatey中。 非常簡單! 但是,如果要在企業環境中進行安裝,則需要從自己的內部NuGet存儲庫安裝客戶端。 您可以通過內化Chocolatey包來完成此操作,我將在本文後面介紹。 有關安裝Chocolatey客戶端的其他方法,請查看此處。

安裝Chocolatey包

現在我們已經安裝了我們的Chocolatey客戶端,讓我們實際安裝一個軟件包。 Chocolatey的一大特色是能夠從多個來源安裝。 這可以是社區存儲庫或您創建的內部存儲庫。

choco install notepadplusplus -y
[DevOps] 三分鐘全面瞭解Windows平臺的Apt和Yum:Chocolatey

最近添加的C4B功能是讓非管理員最終用戶通過Chocolatey GUI安裝軟件的能力。 對於希望卸載安裝軟件請求的企業來說,這是一個很好的自助服務選項。

[DevOps] 三分鐘全面瞭解Windows平臺的Apt和Yum:Chocolatey

創建一個Chocolatey包

使用C4B,用戶可以通過命令行界面(CLI)或包構建器GUI(見下文)創建包。 我更喜歡CLI方法,因為它允許您使用一個命令在五秒內創建完全無人值守的軟件部署:choco new。 在這個例子中,我從我下載的Git安裝程序創建了一個包。

PS C:\Example> Get-ChildItem


Directory: C:\Example


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/29/2018 10:42 AM 39984304 Git-2.16.1-64-bit.exe
[DevOps] 三分鐘全面瞭解Windows平臺的Apt和Yum:Chocolatey

一個額外的參數--build-package是完成包的創建所必需的。 如果沒有這個,你將只需要運行choco pack所需的文件和數據,這將實際創建.nupkg文件。

下面是使用包構建器GUI的屏幕截圖,右鍵單擊安裝程序並從Explorer菜單中選擇它:

[DevOps] 三分鐘全面瞭解Windows平臺的Apt和Yum:Chocolatey

內化來自Chocolatey社區存儲庫的軟件

當我第一次使用Chocolatey時,我的主要抱怨之一是開發人員不鼓勵在商業環境中從社區存儲庫進行安裝。 看看這裡的推理。

這是業務版本派上用場的地方。 使用choco download命令,我們可以下載一個社區包,它還將下載任何遠程安裝程序和資源,並將它們烘焙到我們自己的內部包中。 然後,您可以將其推送到您自己的存儲庫以便更安全地使用。

想想您現在可以節省的時間,因為您不必重新發明輪子並可以快速部署新版本。 使用一些PowerShell,您甚至不需要手動執行任何操作。

在這裡,我從社區存儲庫下載並內置Google Chrome:


[DevOps] 三分鐘全面瞭解Windows平臺的Apt和Yum:Chocolatey

如您所見,Chocolatey從dl.google.com下載遠程資源並替換內部包中的這些引用,以便它指向這些而不是在運行時下載它們。

現在我將我的Google Chrome軟件包推送到我自己的內部存儲庫choco-1:

choco push .\GoogleChrome.64.0.3282.11900.nupkg --source=https://choco-1:8080/chocolatey --api-key='chocolateyrocks'
Chocolatey v0.10.8 Business
Attempting to push GoogleChrome.64.0.3282.11900.nupkgto https://choco-1:8080/chocolatey
GoogleChrome 64.0.3282.11900 was pushed successfully to https://choco-1:8080/chocolatey

就這樣,我現在可以安全,安全地將Google Chrome部署到我的Chocolatey客戶端。

附加功能

雖然我已經說明了使用Chocolatey最受歡迎的功能,但還有很多其他功能。一些功能包括但不限於:

  • 使用VirusTotal或您自己的防病毒軟件保護運行時惡意軟件
  • 使用一個無處不在的交換機覆蓋安裝目錄
  • 包模板
  • 能夠使用內容傳送網絡(CDN)緩存
  • 包審核
  • 能夠創建PowerShell擴展(函數)

總結

隨著自動化對於系統管理員和工程師來說仍然至關重要,其他任何Windows軟件管理器都不會像Chocolatey那樣提供。使用Chocolatey,您可以減少創建,安裝和部署第三方和內部軟件的開銷。此外,Chocolatey是一個獨立的軟件部署工具,可單獨使用或與流行的基礎架構管理工具一起使用。其中包括系統中心配置管理器(SCCM),Puppet,Chef和Ansible,Chocolatey為其提供了模塊。


分享到:


相關文章: