Como fazer o Hudson gravar no disco remoto?

2

Eu tenho um problema ao gravar em um disco remoto usando o Hudson. Quando escrevo manualmente, funciona.

Os dois computadores implicam: um é no Windows XP e o outro é um servidor Mac mini. O disco que precisa ser acessado remotamente está no Mac. Eu consegui o seguinte:

  • Criado um usuário no Mac
  • Deu acesso de leitura / gravação à pasta a ser montada na caixa do WinXP
  • Montou o sistema de arquivos na máquina WinXP usando as credenciais do usuário criado acima
  • Criamos alguns diretórios, movemos arquivos, etc. remotamente (do computador WinXP)

Mas quando o Hudson executa seu script de construção que eu programou para escrever coisas naquela pasta montada, ele falha, dizendo

BUILD FAILED
C:\path\to\build.xml:62:
Directory Z:\mac\path creation was not successful for an unknown reason

Eu posso criar o caminho Z: \ mac \ a partir do mesmo computador (remotamente) e funciona muito bem. Na verdade, o diretório já existe, mas eu quero que ele tente criá-lo de qualquer maneira, caso seja deletado. Eu faço a mesma coisa no disco local e nunca reclamei (diretório existente ou não).

A instrução Ant correspondente seria

<mkdir dir="Z:/mac/path/"/>

Eu suspeito de algum tipo de problema de permissão. Não tenho certeza. O usuário que montou o disco no computador não é SYSTEM ... enquanto o Hudson é executado por "ele". Os nomes de usuário no computador WinXP não têm nada a ver com o usuário Mac usado para montar o sistema de arquivos remoto (NTFS).

O que eu poderia tentar fazer? Está bem montado como Z :. Eu posso navegar e editar sem problemas. Essa linha ainda não é computada no Hudson (embora passe por C :). Eu não acho que é possível montá-lo usando o sistema ... Ajuda, por favor!

    
por Joanis 07.09.2011 / 01:44

2 respostas

1

Acabei de resolver um problema semelhante, por isso espero que esta solução funcione para si ... mas foram 9 meses, por isso talvez ajude a próxima pessoa. O problema básico é que, se o Tomcat for executado como um serviço, seus scripts serão executados como SYSTEM.

Abra um prompt de cmd como SYSTEM para testar (definir a hora para um minuto a partir de agora)

at 12:34 /interactive "cmd.exe"

Teste fora ...

C:\.jenkins\jobs\test\workspace>dir \remotemachine\folder
Access is denied.

Resolva mapeando a unidade como um usuário com permissões suficientes (nesse caso, acesso de gravação)

NET USE z: \remotemachine\folder password /USER:username\domain
    
por 25.06.2012 / 06:03
0

The usernames on the WinXP computer have nothing to do with the Mac user used to mount the remote filesystem (NTFS).

Tente criar uma conta com o mesmo nome de usuário / senha em ambos os sistemas e tenha seu processo Hudson (ou serviço, se tiver sido instalado dessa forma) executado como esse usuário.

A outra maneira seria usar o comando 'NET USE' como mencionado pelo KCD, no entanto, as opções do parâmetro / USER são domain \ username not username \ domain.

Estou usando o comando NET USE no meu ambiente para mapear e, em seguida, gravar uma unidade remota em um NAS, para que assim possa ser feito dessa maneira.

    
por 12.07.2012 / 15:38