2015-05-12 16 views
6

Ho appena installato nodejs su uno dei miei build server (Win Server 2008 R2) che ospita un agente remoto di Bamboo. Dopo aver completato l'installazione e riavviato, mi sono bloccato nella seguente situazione:L'agente di compilazione remota Bamboo non è in grado di trovare powershell.exe dopo aver installato nodejs

L'agente di build Bamboo remoto è in esecuzione come servizio Windows con l'utente MyDomain \ MyUser. Quando una costruzione con un compito in linea PowerShell è in esecuzione fallisce con l'errore (dal log di compilazione):

com.atlassian.utils.process.ProcessNotStartedException: powershell could not be started 
... 
java.io.IOException: Cannot run program "powershell" 
... 
java.io.IOException: CreateProcess error=2, The system cannot find the file specified 

Loggin al server come MyDomain \ MyUser, ho verificato che PowerShell è nel percorso:

where powershell 
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 

Ho provato a riavviare il servizio e riavviare il computer più volte. Senza fortuna. L'unica cosa che funziona è se eseguo i miei script come un bat file con un percorso assoluto a PowerShell - ma non lo voglio.

Ho cercato soluzioni su questo, ma anche se questo sembra correlato: Hudson cannot find powershell after update to powershell 3 - le soluzioni proposte non funzionano.

Cosa mi manca qui?

risposta

8

Se si esegue un'installazione predefinita di nodejs, si vedrà che aggiunge nodejs e npm al percorso. A volte ho visto che l'installer aggiunge una variabile utente denominata PATH - potrebbe essere che l'agente Bamboo decida di leggere il percorso dell'utente senza "unirlo" con il percorso di sistema. Penso che varrebbe la pena provare a dare un'occhiata.

+4

Brillante suggerimento: questo era il trucco. Ho spostato il contenuto della variabile utente sulla variabile di sistema, cancellato la variabile utente PATH e le cose stanno funzionando di nuovo. Non posso credere che l'agente di Build non stia combinando entrambe le variabili PATH. Comunque, questo è davvero bello sapere. Grazie ancora. –

+1

Salvato il lunedì mattina dove tutto era rotto. What timebomb: alcuni giorni dopo l'aggiornamento del nodo, ma solo quando il server è stato riavviato a causa dell'aggiornamento di Windows, l'agente è stato riavviato e l'errore ha avuto inizio. – ankhansen