使用 Chocolatey Packages 自動化 PowerShell 模組

在這篇博文中,學習如何創建 Chocolatey 包(一個流行的 Windows 軟件打包管理器)。

隨著自動化變得越來越必要,而不僅僅是一個好用的工具,我們 IT 人員需要尋找更好的方法來執行瑣碎的任務之一,即安裝軟件。與其下載一個 MSI,雙擊並通過嚮導運行,不如考慮一種更好的方式。

幾乎所有軟件都有命令行參數可以實現靜默安裝,如果你進行足夠的研究,你可能會找到正確的參數。你的安裝可能會像這樣:

> install.exe /q /n /e /noreboot

你能記住所有這些參數嗎?可能不會。你可以將這些參數放在一個批處理文件中,然後忘記了你把那個腳本放在哪里 或者 你可以這樣做:

Install-Package -Name AcmeSoftware

現在這個可以很容易地記住。

但是你如何達到這個目標呢?答案是一個 NuGet 倉庫和一個 NuGet 包。 NuGet 是一個傳統的軟件打包技術,允許你將一個軟件封裝起來,然後存儲在倉庫中,隨時可以下載和安裝。Chocolatey 是一個喜愛的開源工具,它使用 NuGet 允許 IT 管理員下載和靜默安裝軟件。

在這篇文章中,我將假設你已經設置好了一個 NuGet 倉庫,或者你知道你將要發送你的包的位置。

讓我們將一個軟體封裝成 NuGet 套件,以供在其中一個儲存庫中使用。

安裝 Chocolatey

由於 Windows 作業系統預設未安裝 Chocolatey,因此必須先下載並安裝它。可以在 PowerShell 控制台中執行以下指令進行下載和安裝:

PS> iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

建立 NUSPEC 檔案

要建立 Chocolatey 套件,首先必須建立一個 NUSPEC 檔案。NUSPEC 檔案是一個描述套件內容的 XML 套件清單。這個 NUSPEC 檔案必須符合特定的格式。以下是一個僅包含必要元素的範例 NUSPEC 檔案:

<?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
      <metadata>
        <id>MySpecialSoftware</id>
        <version>1.0</version>
        <description>Some software I'm packaging up.</description>
        <authors>Adam Bertram</authors>
      </metadata>
    </package>

要查看可以使用的所有標籤的完整說明,請參考NUSPEC 參考資料

如何建立 Chocolatey 套件

接下來,建立套件。為此,我們使用 Install-ChocolateyInstallPackage 指令。假設我們要封裝的軟體是一個 EXE 檔案,且安裝時的靜默開關是 /s。我們必須將檔案位置和靜默開關傳遞給指令。

PS> Install-ChocolateyPackage -PackageName 'AcmeSoftware' -FileType 'exe' -File 'C:\install.exe' -SilentArgs '/s'

這個指令將建立套件。接下來,我們需要使用 choco exe 打包套件。

PS> choco pack

一旦軟體被封裝起來,現在可以將其發佈到您選擇的 Chocolatey 儲存庫中。

摘要

這個過程可以重複應用於每個你需要透過Chocolatey部署的軟體。如你所見,只需要進行幾個額外的步驟,就可以讓軟體”準備好”使用Chocolatey。現在這樣做,可以讓你專注於重要的任務,而不是花時間弄清楚如何一次性將軟體部署到一群機器上!

如果你在學習如何建立Chocolatey套件後,想要更深入了解,請務必查看Chocolatey文件

Learning How to Create Chocolatey Package

Source:
https://adamtheautomator.com/create-chocolatey-package/