Использование PuTTY в командной строке из Гудзона

Я пытаюсь использовать PuTTY на командной строке от Гудзонского задания.

Команда является следующей:

putty -ssh -2 -P 22 USERNAME@SERVER_ADDR -pw PASS -m command.txt

Где 'command.txt' является сценарием оболочки для выполнения в сервере через SSH.

Если я запускаю эту команду от командной строки Windows, она работает. Сценарий оболочки выполняется на машине сервера.

Если я запускаю сборку Гудзонского задания, настроенного с этой пакетной командой, оно не работает. Сборка работает... и работает... и работает.. ничего не делая, и я должен остановить его вручную.

Действительно ли возможно запустить внешнюю программу (то есть, PuTTY) от Гудзонского задания?

PS: Я попробовал плагин SSH, но... не действительно хороший плагин (пред/сообщение сборка, состояние сбоя команд, запущенных не пойманный Гудзоном, и т.д.)

Это журналы сборки:

[workspace] $ cmd /c call C:\WINDOWS\TEMP\hudson7429256014041663539.bat

C:\Hudson\jobs\Artifact deployer\workspace>putty -ssh -2 -P 22 USER@SERV_ADD -pw PASS -m com.txt 
Le build a été annulé
Finished: ABORTED

И файл Hudson.err.log одновременно (после остановки):

3 juin 2010 18:27:28 hudson.model.Run run
INFO: Artifact deployer #6 aborted
java.lang.InterruptedException
    at java.lang.ProcessImpl.waitFor(Native Method)
    at hudson.Proc$LocalProc.join(Proc.java:179)
    at hudson.Launcher$ProcStarter.join(Launcher.java:278)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:83)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:58)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:601)
    at hudson.model.Build$RunnerImpl.build(Build.java:174)
    at hudson.model.Build$RunnerImpl.doRun(Build.java:138)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:416)
    at hudson.model.Run.run(Run.java:1241)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:124)

Мой сценарий оболочки только пишет "привет" в файле "hello.txt" на сервере, и ничто не сделано.

1
задан 19.11.2013, 20:00

3 ответа

Проблема, что необходимо принять ключ с именем пользователя, с которым Вы выполняете Гудзон. Таким образом в случае, если Вы не выполняете Гудзон с локальной системной учетной записью (который является плохой идеей так или иначе), необходимо войти в систему с Гудзоном, считают и принимают ключ. Затем Ваша Гудзонская сборка будет работать.

Если Гудзон работает с локальной системной учетной записью могла бы быть опция, но я не уверен, будет ли он работать или нет. Во-первых, необходимо позволить Гудзонскому сервису взаимодействовать с рабочим столом. Затем Вы входите в свой сервер как администратор. Я не уверен, физически ли необходимо быть на поле. Звон запуска или PuTTY и надежда, что всплывающее окно появится, затем можно принять ключ, и все должно хорошо работать.

Другая опция состояла бы в том, чтобы запустить Звон с командой рун и предоставить Ваши (различные) удостоверения пользователя.

Другая опция: получите Звон Quest и используйте опцию -auto_store_key_in_cache.

1
ответ дан 12.12.2019, 10:42

PuTTY создает окно. Это, вероятно, почему это зависает для Гудзона (который не имеет доступа к системе управления окнами). Звон является, вероятно, лучшей ставкой. Однако с моей установкой PuTTY (0.60), параметры командной строки Звона полностью повреждаются. Я не мог войти в сервер кроме с моими значениями по умолчанию PuTTY.

В теории Вы могли настроить сессию PuTTY и использование это со Звоном (через -load). Однако у Вас будет проблема получения Вашей настроенной сессии в любого пользователя Hudson, работает как.

1
ответ дан 12.12.2019, 10:42

Мой любимый способ войти в контекст другой машины состоит в том, чтобы создать ведомое устройство на целевой машине и запустить скрипты. Я использую это экстенсивно для обхождения паролей хранения, незашифрованных на жестких дисках. Взгляните на гудзонскую документацию относительно того, как сделать это.

0
ответ дан 12.12.2019, 10:42

Теги

Похожие вопросы