ChocolateyパッケージでPowerShellモジュールを自動化する方法

このブログ記事では、人気のあるWindowsパッケージングマネージャーであるChocolateyパッケージを作成する方法について学びます。

自動化が必要不可欠なものとなっている今、私たちIT関係者は単純作業を行うためのより良い方法を考えることが重要です。その中の一つがソフトウェアのインストールです。MSIをダウンロードしてダブルクリックし、ウィザードを実行する代わりに、より良い方法を考えることが重要です。

ほとんどのソフトウェアはサイレントインストールのためのコマンドラインオプションを持っており、十分な調査を行えば、適切なオプションを見つけることができるかもしれません。その場合、インストールは次のようになります:

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

これらのオプションをすべて覚えていますか?おそらく覚えていないでしょう。これらのオプションをバッチファイルに入れて、そのスクリプトをどこに置いたか忘れることができます。または次のようにすることができます:

Install-Package -Name AcmeSoftware

これなら簡単に覚えられます。

しかし、どうやってそのポイントにたどり着くのでしょうか?答えは、NuGetリポジトリとNuGetパッケージです。NuGetは、ソフトウェアを包装してリポジトリに保存し、必要に応じてダウンロードしてインストールすることができる従来のソフトウェアパッケージング技術です。Chocolateyは、NuGetを使用してIT管理者がソフトウェアをダウンロードしてサイレントにインストールすることができるお気に入りのオープンソースツールです。

この記事では、すでにNuGetリポジトリが設定されているか、パッケージを送信する場所がわかっていることを前提としています。

ソフトウェアのパッケージングを行い、それをNuGetパッケージにまとめて、これらのリポジトリの1つで使用しましょう。

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コマンドを使用してパッケージをパックする必要があります。

PS> choco pack

ソフトウェアがパッケージ化されたら、選択したChocolateyリポジトリに公開することができる形式になります。

要約

このプロセスは、Chocolateyを介して展開する必要がある各ソフトウェアに対して繰り返すことができます。ご覧のように、「Chocolatey対応」のソフトウェアを取得するために行われる追加の手順はほんの数つです。これにより、一度に複数のマシンにソフトウェアを展開する方法を考える代わりに、重要なタスクに戻ることができます!

Chocolateyパッケージの作成方法を学んだ後、さらに詳しく知りたい場合は、Chocolateyドキュメントをご覧ください。

Learning How to Create Chocolatey Package

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