Se hai gestito server Windows per un certo periodo di tempo, senza dubbio avrai molti script PowerShell per eseguire quelle attività noiose ma necessarie che fai regolarmente, come reimpostare le password, raccogliere dati di log o archiviare file di backup. Sai che PowerShell in Jenkins è possibile?
Potresti avere degli script che esegui regolarmente, magari hai persino impostato un evento pianificato nel task scheduler per automatizzare i tuoi script PowerShell.
C’è un modo migliore.
In questo articolo, imparerai come installare Jenkins su Windows ed eseguire uno script PowerShell semplice. Imparerai come installare Jenkins, configurare la sicurezza di base, abilitare il plugin PowerShell ed eseguire un job per creare un semplice file di testo con parametri che inseriremo.
Questo articolo è pensato come una semplice introduzione a Jenkins. La configurazione che imparerai non è necessariamente destinata a ambienti di produzione.
Prerequisiti
La maggior parte di questo articolo sarà una guida passo passo. Se hai intenzione di seguirla, assicurati di avere alcuni prerequisiti in atto.
I requisiti per eseguire Jenkins sono così minimi che qualsiasi computer moderno potrebbe farlo. Gli esempi in questo articolo si basano su Jenkins in esecuzione su:
- Windows 10 Enterprise v.1903
- PowerShell Core v6
Sebbene Jenkins possa essere eseguito su qualsiasi piattaforma, mi concentrerò su Windows 10 Enterprise per mantenere le cose semplici.
Installazione di Jenkins
Con i prerequisiti risolti, procediamo con l’installazione di Jenkins.
L’installazione di Jenkins è semplice e diretta. Accedi a https://www.jenkins.io/download/ e scarica la versione a supporto a lungo termine (LTS). Sono disponibili due versioni, la versione LTS e la versione “settimanale”. La versione “settimanale” viene aggiornata regolarmente ma può essere instabile. Per questo articolo, utilizzeremo la versione LTS. Questa è la versione più stabile.
Come puoi vedere dalla schermata sottostante, ci sono diverse opzioni tra cui scegliere. Seleziona la versione per Windows per avviare il download.

Una volta scaricato l’installatore, estrai l’archivio zip ed esegui l’installazione accettando tutte le impostazioni predefinite. L’installazione è semplice.
Una volta completata l’installazione, Jenkins aprirà un browser con la pagina Getting Started. Questa pagina contiene la password amministratore iniziale per sbloccare Jenkins e continuare la configurazione. Come puoi vedere di seguito, Jenkins mi sta indicando di leggere un file di testo in C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword.

Accedi al file indicato, aprilo, copia la password mostrata e utilizzala come password amministratore nella pagina Getting Started.
Installazione di plugin
Una volta effettuato il primo accesso, Jenkins completerà l’installazione finale e poi chiederà quali plugin installare. Ci sono un paio di scelte come puoi vedere nell’immagine sottostante.
Selezionando Installa i plugin suggeriti verrà installato il set raccomandato di plugin basato sugli scenari di utilizzo più comuni. Questi includono plugin per fornitori di autenticazione, interazioni con GitHub ed estensioni Java. Seleziona plugin da installare ti permette di installare solo quelli necessari da un elenco di tutti i plugin disponibili.
Evidenzia Installa i plugin suggeriti e clicca su OK. Questo processo richiederà alcuni minuti per installare i plugin iniziali, quindi adesso è il momento giusto per prenderti un caffè.

Creazione dell’utente Admin
Una volta installati i plugin, il passo successivo è la creazione del nostro primo utente. Questo primo utente è l’amministratore di Jenkins e avrà permessi globali, molto simili all’Amministratore Enterprise per Windows Server. Puoi vedere sotto come sarà la pagina Crea il primo utente Admin.

Da questo momento in poi, l’interfaccia di Jenkins sarà accessibile solo inserendo un nome utente e una password validi.
Impostazione dell’URL dell’Admin di Jenkins
L’ultimo passo è impostare l’URL per il servizio Jenkins. Questo URL è l’interfaccia per gestire il programma Jenkins e idealmente dovrebbe essere impostato su un Fully Qualified Domain Name (FQDN). Impostarlo su un FQDN permetterà l’accesso remoto come un sito web. Per questo articolo e per semplificare le cose, accetta l’URL predefinito.

Impostazione della sicurezza
Con l’installazione completata, procediamo con la configurazione dell’autenticazione. Se non è già aperto, vai alla dashboard principale. Dalla dashboard principale, clicca su “Gestisci Jenkins”, poi su “Configura sicurezza globale” per aprire le impostazioni di sicurezza come mostrato di seguito.

Nella pagina “Configura sicurezza globale” vedrai diverse opzioni tra cui scegliere. In questo articolo, utilizzeremo il database utenti di Jenkins per mantenere le cose semplici. È anche una buona idea deselezionare “Consenti agli utenti di registrarsi” come mostrato di seguito. Se lasciata selezionata, consentirà a qualsiasi utente di creare un account e ottenere l’accesso a Jenkins. .
Osservando lo screenshot qui sotto, ci sono altre opzioni per l’autenticazione.
- Delega al contenitore servlet: viene utilizzato se hai già configurato i contenitori Docker con Jenkins e consente l’autenticazione tramite il contenitore.
- LDAP: questa opzione viene utilizzata quando hai già un Active Directory che desideri utilizzare per l’autenticazione.
Successivamente, seleziona l’opzione “Gli utenti con accesso possono fare qualsiasi cosa”. In questa modalità, ogni utente con accesso avrà pieno controllo di Jenkins. Questo potrebbe non essere una buona idea per l’ambiente di produzione in quanto consente a qualsiasi utente di apportare modifiche alle impostazioni.

Abilitazione del plugin PowerShell in Jenkins
Con la configurazione di base della sicurezza completata, è ora il momento di configurare il plugin PowerShell in Jenkins. Per installare il plugin PowerShell, vai alla dashboard principale, clicca su “Gestisci Jenkins” e poi su “Gestisci Plugin” come mostrato di seguito.

Ci sono centinaia di plug-in, quindi il modo migliore per trovare il plug-in di PowerShell è cercarlo. Nella barra dei filtri, digita “PowerShell” e selezionalo dalla lista. Seleziona la casella, come mostrato di seguito, per abilitarlo. Ciò consentirà a Jenkins di scrivere direttamente comandi e script PowerShell nelle caselle di testo all’interno di Jenkins e di invocare PowerShell senza dover avviare una console PowerShell separata.
Puoi vedere di seguito come potrebbe apparire questo.

Con il plug-in abilitato, Jenkins è pronto per eseguire lavori PowerShell.
Creazione di un lavoro PowerShell in Jenkins
L’installazione del plug-in PowerShell in Jenkins è completa. Ora passiamo alle cose divertenti. Creiamo un lavoro.
In Jenkins, un lavoro è definito come una serie di attività da completare. Uno scenario comune è un lavoro che avvierà la compilazione di un programma quando un sviluppatore effettua il check-in del codice. Molto simile al Task Manager in Windows Server.
Il lavoro che stiamo per configurare sarà quello di verificare la presenza della directory c:\temp e inserire un file di testo in quella directory con un messaggio personalizzato.
Jenkins ha diversi tipi di progetti, a volte chiamati pipelines, che si concentrano su obiettivi specifici. I diversi tipi di progetti avranno impostazioni, opzioni e parametri diversi a seconda del tipo di progetto scelto. Puoi trovare ulteriori informazioni sui tipi di progetti e quando usarli sul sito di Jenkins.
Dalla dashboard principale, fare clic su Nuovo elemento. Per il nome del lavoro, inserire creazione di un file di testo. Questo è arbitrario, ma è una buona idea etichettarlo in modo coerente.
In questo articolo useremo il progetto Freestyle. Questo offre la massima flessibilità per creare il nostro lavoro. Evidenziare il progetto Freestyle e scorrere fino in fondo e fare clic su OK.

Questo lavoro sarà un progetto parametrizzato. Ciò significa che possiamo richiedere agli utenti un input e quell’input verrà passato al lavoro. Ad esempio, supponiamo di avere un lavoro PowerShell in Jenkins che copia i file di log in una directory specifica. Possiamo aggiungere una richiesta al lavoro che chiederà un nome file da includere nella compilazione quando eseguiamo il lavoro.
Selezionare l’opzione Questo progetto è un progetto parametrizzato dall’elenco a discesa. Fare clic sul menù a discesa Aggiungi parametro e scegliere Parametro stringa. Il parametro stringa è dove inserire il messaggio che si desidera includere nel file di testo.

Successivamente, aggiungere un secondo Parametro di scelta. Dovrebbe apparire come nella schermata di cattura seguente. Questa opzione fornirà all’utente la possibilità di selezionare un elemento dall’elenco a discesa.

Le impostazioni del lavoro dovrebbero ora assomigliare all’immagine di schermata seguente.

Scorri verso il basso fino alla sezione Costruzione. Fai clic sulla piccola freccia e seleziona Windows PowerShell. In questo modo Jenkins sa che stiamo eseguendo uno script PowerShell. Qui inseriamo anche lo script PowerShell. Questo lavoro è pronto. Fai clic su Salva.

Per uno script di esempio per il nostro lavoro PowerShell in Jenkins, creiamo un file nella directory temp e aggiungiamo un messaggio semplice.
Questo è uno script semplice che creerà una directory temp sotto la radice, se non è già presente, e creerà un file di testo in quella directory.
Suggerimento: Scrivi prima il tuo script in VSCode o in un altro editor e poi incollalo nella casella.
Esecuzione del lavoro PowerShell in Jenkins
Infine, sei pronto per eseguire il tuo primo lavoro. Torniamo alla dashboard principale e vedrai il lavoro Crea file di testo elencato nella dashboard principale. Vedi sotto.

Fai clic sull’icona dell’orologio nella parte destra e apri il modulo del lavoro.

Nella casella di messaggio, inserisci il testo che desideri inserire nel file di testo e fai clic su Esegui. Una volta completata l’esecuzione, fai clic sull’output della console. L’output della console mostra lo stato del lavoro e se l’esecuzione del lavoro è stata eseguita correttamente.

Ora tutto ciò che resta da fare è aprire il file manager e controllare il file. Naviga fino alla directory temp e apri il file di testo. Avrà lo stesso testo che hai inserito nella casella di messaggio di creazione.

Sommario
Ora hai una comprensione di base di PowerShell in Jenkins. È un potente strumento che può essere utilizzato per gestire i tuoi script PowerShell e automatizzare tutte le cose!