Автоматизация модулей PowerShell с пакетами Chocolatey

В этом блоге вы узнаете, как создать пакет Chocolatey (популярный менеджер установки для Windows).

Поскольку автоматизация становится все больше необходимостью, а не просто удобством, важно, чтобы мы, специалисты IT, искали лучшие способы выполнения рутинных задач; одна из таких задач – установка программного обеспечения. Вместо того чтобы загружать MSI, дважды щелкнуть по нему и пройти мастер установки, лучше задуматься о более эффективном способе.

Почти все программное обеспечение имеет командные переключатели для тихой установки, и если вы проведете достаточно исследований, вы можете выяснить правильные команды. Ваша установка может выглядеть так:

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

Вы будете помнить все эти переключатели? Скорее всего, нет. Вы можете поместить эти переключатели в пакетный файл и забыть, где вы его положили или вы можете сделать это:

Install-Package -Name AcmeSoftware

Теперь это что-то, что можно легко запомнить.

Но как вы добьетесь этого результата? Ответ – репозиторий NuGet и пакет NuGet. NuGet – это традиционная технология упаковки программного обеспечения, которая позволяет вам фактически упаковывать программу, которая затем может быть сохранена в репозитории, загружена и установлена по вашему желанию. Chocolatey – это известный инструмент с открытым исходным кодом, который использует NuGet, чтобы позволить администраторам IT загружать и тихо устанавливать программное обеспечение.

В этой статье я предполагаю, что у вас уже настроен репозиторий NuGet или вы знаете, куда отправить свой пакет.

Подготовим программное обеспечение и упакуем его в пакет NuGet для использования в одном из этих репозиториев.

Установка Chocolatey

Поскольку Chocolatey не устанавливается по умолчанию в операционной системе Windows, его необходимо загрузить и установить. Это можно сделать, выполнив следующую команду в консоли 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/