Automatizar Módulos de PowerShell con Paquetes Chocolatey

En esta publicación de blog, aprende cómo crear un paquete de Chocolatey (un popular administrador de paquetes para Windows).

A medida que la automatización se vuelve más una necesidad que un lujo, es importante que nosotros, los profesionales de TI, busquemos mejores formas de realizar tareas triviales; una de esas tareas es la instalación de software. En lugar de descargar un MSI, hacer doble clic en él y seguir el asistente, sería conveniente que pienses en una forma mejor.

Casi todo el software tiene interruptores de línea de comandos para instalar en silencio, y si investigas lo suficiente, podrías descubrir los interruptores correctos. Tu instalación podría verse así:

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

¿Vas a recordar todos esos interruptores? Probablemente no. Podrías poner estos interruptores en un archivo por lotes y luego olvidar dónde colocaste ese script o podrías hacer esto:

Install-Package -Name AcmeSoftware

Ahora eso es algo que se puede recordar fácilmente.

Pero, ¿cómo llegarías a ese punto? La respuesta es un repositorio NuGet y un paquete NuGet. NuGet es una tecnología tradicional de empaquetado de software que te permite envolver esencialmente un software que luego se puede almacenar en un repositorio, descargar e instalar a voluntad. Chocolatey es una herramienta de código abierto favorita que utiliza NuGet para permitir a los administradores de TI descargar e instalar software en silencio.

En este artículo, voy a suponer que ya tienes configurado un repositorio NuGet o sabes dónde enviar tu paquete.

Tomemos un programa y lo empaquetemos en un paquete NuGet para usarlo en uno de estos repositorios.

Instalando Chocolatey

Dado que Chocolatey no está instalado por defecto en un sistema operativo Windows, debemos descargarlo e instalarlo. Puede descargarse e instalarse ejecutando esto en una consola PowerShell:

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

Creando un archivo NUSPEC

Para crear un paquete de Chocolatey, primero debes crear un archivo NUSPEC. Un archivo NUSPEC es un manifiesto de paquete XML que describe el contenido del paquete. Este archivo NUSPEC debe tener un formato específico. Aquí tienes un ejemplo de un archivo NUSPEC que solo utiliza los elementos requeridos:

<?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>

Para obtener una lista completa de todas las etiquetas que se pueden utilizar, consulta la referencia de NUSPEC.

Cómo crear un paquete de Chocolatey

A continuación, crea el paquete. Para hacer esto, utilizamos el comando Install-ChocolateyInstallPackage. Vamos a suponer que el programa que estamos empaquetando es un archivo EXE y los argumentos para instalarlo en silencio son /s. Debemos enviar la ubicación del archivo junto con los argumentos de silencio al comando.

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

Este comando creará el paquete. A continuación, debemos empaquetar el paquete usando el ejecutable choco.

PS> choco pack

Una vez que el programa ha sido empaquetado, ahora está en un formato en el que puedes publicarlo en un repositorio de Chocolatey de tu elección.

Resumen

Este proceso se puede repetir para cada pieza de software que necesites desplegar a través de Chocolatey. Como puedes ver, solo hay algunos pasos adicionales que deben llevarse a cabo para preparar el software para Chocolatey. Al hacerlo ahora, te permite volver a realizar tareas que importan en lugar de descubrir cómo desplegar software en un montón de máquinas a la vez.

Si deseas profundizar más después de haber aprendido cómo crear paquetes de Chocolatey, asegúrate de consultar la documentación de Chocolatey.

Learning How to Create Chocolatey Package

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