Si has estado administrando servidores Windows durante algún tiempo, sin duda tendrás muchos scripts de PowerShell para realizar esas tareas mundanas pero necesarias que haces regularmente, como restablecer contraseñas, recopilar datos de registro o archivar archivos de copia de seguridad. ¿Sabías que PowerShell en Jenkins es una cosa?
Puede que tengas scripts que ejecutas regularmente, tal vez incluso hayas configurado un evento en el programador de tareas en un intento de automatizar tus scripts de PowerShell.
Hay una manera mejor.
En este artículo, aprenderás cómo instalar Jenkins en Windows y ejecutar un script sencillo de PowerShell. Aprenderás cómo instalar Jenkins, configurar la seguridad básica, habilitar el complemento de PowerShell y ejecutar un trabajo para crear un archivo de texto simple con parámetros que introduciremos.
Este artículo pretende ser una introducción básica a Jenkins. La configuración que aprenderás no está necesariamente destinada a entornos de producción.
Prerrequisitos
La mayor parte de este artículo será una guía paso a paso. Si planeas seguir, asegúrate de tener algunos requisitos previos en su lugar.
Los requisitos para ejecutar Jenkins son tan mínimos que cualquier computadora moderna podría hacerlo. Los ejemplos en este artículo se basarán en Jenkins ejecutándose en:
- Windows 10 Enterprise v.1903
- PowerShell Core v6
Aunque Jenkins puede ejecutarse en casi cualquier plataforma, me centraré en Windows 10 Enterprise para mantener las cosas simples.
Instalación de Jenkins
Con los requisitos previos resueltos, procedamos a instalar Jenkins.
La instalación de Jenkins es simple y directa. Navega a https://www.jenkins.io/download/ y descarga la versión de soporte a largo plazo (LTS). Hay dos versiones disponibles, la versión LTS y la versión “Semanal”. La versión “Semanal” se actualiza regularmente y puede ser inestable. En este artículo, utilizaremos la versión LTS. Esta es la versión más estable.
Como se muestra en la captura de pantalla a continuación, hay varias opciones para elegir. Selecciona la versión de Windows para iniciar la descarga.

Una vez que hayas descargado el instalador, extrae el archivo zip y ejecuta el instalador aceptando todas las opciones predeterminadas. La instalación es sencilla.
Una vez que se complete la instalación, Jenkins abrirá un navegador con la página Primeros pasos. Esta página tiene la contraseña inicial del administrador para desbloquear Jenkins y continuar con la configuración. Como se muestra a continuación, Jenkins me indica que lea un archivo de texto en C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword.

Navega al archivo mostrado, ábrelo, copia la contraseña que se muestra y úsala como la contraseña del administrador en la página Primeros pasos.
Instalación de complementos
Una vez que inicias sesión por primera vez, Jenkins finalizará la configuración final y luego preguntará qué complementos instalar. Hay varias opciones, como se puede ver a continuación en la captura de pantalla.
Seleccionar Instalar complementos sugeridos instalará el conjunto recomendado de complementos según los escenarios de uso más comunes. Estos incluyen complementos para proveedores de autenticación, interacciones con GitHub y extensiones de Java. Seleccionar complemento para instalar te permite instalar solo los necesarios de una lista de todos los complementos disponibles.
Destaca Instalar complementos sugeridos y haz clic en Aceptar. Este proceso tomará algunos minutos para instalar los complementos iniciales, así que ahora es un buen momento para tomar un café.

Creación del Usuario Administrador
Una vez instalados los complementos, el siguiente paso es crear nuestro primer usuario. Este primer usuario es el administrador de Jenkins y tendrá permisos globales, similar al Administrador de Empresa para Windows Server. Puedes ver a continuación cómo se verá la página Crear Primer Usuario Administrador.

A partir de este punto, la interfaz de Jenkins solo es accesible ingresando un nombre de usuario y contraseña válidos.
Configuración de la URL del Administrador de Jenkins
El último paso es configurar la URL para que el servicio de Jenkins se ejecute. Esta URL es la interfaz para administrar el programa Jenkins y idealmente debería configurarse con un Nombre de Dominio Completo (FQDN). Configurarlo con un FQDN permitirá el acceso remoto, al igual que un sitio web. Para este artículo y para mantener las cosas simples, acepta la URL predeterminada.

Configuración de la Seguridad
Con la instalación completa, configuremos la autenticación. Dirígete al panel principal si aún no está abierto. Desde el panel principal, haz clic en Administrar Jenkins y luego en Configurar seguridad global para abrir la configuración de seguridad, como se muestra a continuación.

En la página Configurar seguridad global, verás algunas opciones para elegir. Para este artículo, vamos a utilizar la base de datos de usuarios propia de Jenkins para mantener las cosas simples. También es una buena idea desmarcar la opción Permitir que los usuarios se registren, como se muestra a continuación. Si está marcada, permitirá que cualquier usuario cree una cuenta y se dé acceso a sí mismo a Jenkins. .
Observando la captura de pantalla a continuación, hay otras opciones para la autenticación.
- Delegar al contenedor servlet: se utiliza si ya tienes contenedores Docker configurados con Jenkins y permite la autenticación a través del contenedor.
- LDAP: esta opción se utiliza cuando ya tienes Active Directory que deseas usar para la autenticación.
A continuación, elige la opción Los usuarios conectados pueden hacer cualquier cosa. En este modo, cada usuario conectado tendrá control total sobre Jenkins. Esto puede no ser una buena idea para producción, ya que permite que cualquier usuario realice cambios en la configuración.

Activando el complemento de PowerShell en Jenkins
Con la configuración básica de seguridad lista, es hora de configurar el complemento de PowerShell en Jenkins. Para instalar PowerShell, navega al panel principal, haz clic en Administrar Jenkins, luego en Administrar complementos, como se muestra a continuación.

Hay cientos de complementos, así que la mejor manera de encontrar el complemento de PowerShell es buscarlo. En la barra de filtro, ingrese “PowerShell” y selecciónelo de la lista. Marque la casilla, como se muestra a continuación, para habilitarlo. Esto permitirá que Jenkins escriba directamente comandos y scripts de PowerShell en los cuadros de texto dentro de Jenkins y permitirá a Jenkins invocar PowerShell sin tener que iniciar una consola de PowerShell separada.
Puede ver a continuación cómo podría verse esto.

Con el complemento habilitado, Jenkins está listo para ejecutar trabajos de PowerShell.
Creando un Trabajo de PowerShell en Jenkins
La instalación del complemento de PowerShell en Jenkins está completa. Aquí viene la parte divertida. Vamos a crear un trabajo.
En Jenkins, un trabajo se define como una serie de tareas que completar. Un escenario común es un trabajo que comenzará a compilar un programa cuando un desarrollador registre código. Muy similar al Administrador de Tareas en el servidor Windows.
El trabajo que vamos a configurar será para verificar el directorio c:\temp e insertar un archivo de texto en ese directorio con un mensaje personalizado.
Jenkins tiene diferentes tipos de proyectos, a veces llamados Pipelines, que se centran en objetivos específicos. Los diferentes tipos de proyectos tendrán diferentes configuraciones, opciones y parámetros dependiendo del tipo de proyecto que elija. Puede encontrar más información sobre los tipos de proyectos y cuándo usarlos en el sitio de Jenkins.
Desde el panel principal, haz clic en Nuevo elemento. Para el nombre del trabajo, ingresa creando un archivo de texto. Esto es arbitrario, pero es una buena idea etiquetarlo con algo que tenga sentido.
Para este artículo vamos a utilizar el proyecto Freestyle. Esto ofrece la mayor flexibilidad para crear nuestro trabajo. Resalta el proyecto Freestyle y desplázate hacia abajo y haz clic en Aceptar.

Este trabajo va a ser un proyecto parametrizado. Esto significa que podemos solicitar a los usuarios una entrada y esa entrada se pasará al trabajo. Por ejemplo, digamos que tenemos un trabajo de PowerShell en Jenkins que copia archivos de registro a un directorio específico. Podemos agregar una solicitud al trabajo que preguntará por un nombre de archivo para incluirlo en la compilación cuando ejecutemos el trabajo.
Marca el elemento Este proyecto es parametrizado en la lista desplegable. Haz clic en el menú desplegable Añadir parámetro y elige Parámetro de cadena. El parámetro de cadena es donde ingresas el mensaje que deseas incluir en el archivo de texto.

Luego añade un segundo Parámetro de opción. Debería lucir como la captura de pantalla a continuación. Esta opción le dará al usuario opciones para seleccionar un elemento de la lista desplegable.

La configuración del trabajo debería verse algo así como la captura de pantalla a continuación.

Desplázate hacia abajo hasta la sección de Construir. Haz clic en la pequeña flecha y selecciona Windows PowerShell. Esto permite a Jenkins saber que estamos ejecutando un script de PowerShell. Aquí es también donde ingresamos el script de PowerShell. Este trabajo está listo ahora. Haz clic en Guardar.

Para un ejemplo de script para nuestro trabajo de PowerShell en Jenkins, creemos un archivo en el directorio temporal y agreguemos un mensaje simple.
Este es un script simple que creará un directorio temporal bajo la raíz, si aún no existe, y creará un archivo de texto en ese directorio.
CONSEJO: Escribe tu script primero en VSCode o en otro editor y luego pégalo en el cuadro.
Ejecutar el Trabajo de PowerShell en Jenkins
Finalmente, estás listo para ejecutar tu primer trabajo. Volvamos al panel principal y verás el trabajo de Crear Archivo de Texto listado en el panel principal. Mira abajo.

Haz clic en el icono del reloj en la parte derecha y muestra el formulario del trabajo.

En el cuadro de mensaje, ingresa el texto que deseas insertar en el archivo de texto y haz clic en construir. Una vez que la construcción esté terminada, haz clic en la salida de la consola. La salida de la consola muestra el estado del trabajo y si la ejecución del trabajo fue exitosa.

Ahora todo lo que queda por hacer es abrir el administrador de archivos y revisar el archivo. Navega al directorio temporal y abre el archivo de texto. Tendrá el mismo texto que ingresaste en el cuadro de mensaje de construcción.

Resumen
Ahora tienes un entendimiento básico de PowerShell en Jenkins. ¡Es una herramienta poderosa que se puede utilizar para gestionar tus scripts de PowerShell y automatizar todas las cosas!