windows - удаленное - ssh удаленный запуск скрипта




Запускать пакетные скрипты на удаленном сервере(windows) от jenkins (2)

У меня есть сервер непрерывной интеграции (Jenkins), который создает мой код (проверяет наличие ошибок компиляции) и запускает тесты, а затем развертывает файлы на удаленном сервере (не военный файл, а фактическую файловую структуру). Я делаю это с помощью Плагин Jenkins, который позволяет мне передавать файлы через Samba, он делает это ночью.

Теперь мне нужно выполнить команду ant на удаленном сервере. И после этого мне нужно запустить сервер приложений на удаленном сервере, сервер приложений запускается при запуске файла .bat из командной строки.

Я совершенно не знаю, как этого добиться, я знаю, что Дженкинс способен запускать пакетные команды, но как мне заставить их работать в контексте сервера, а не в контексте сервера сборки?


В конце концов, я попробовал другой подход, попробовав некоторое время psexec.exe.

Psexec.exe и копирование файлов по сети было немного медленным и нестабильным, тем более что домен, на котором я работаю, имеет политику смены пароля каждый месяц (что нарушало сборку).

В конце концов я выбрал подход «ведущий / ведомый», который работает быстрее и стабильнее. Так как мне не нужно использовать psexec.exe и не нужно копировать файлы по сети.


Если Jenkins на Windows, удаленной на * nix, использует plink.exe (что по сути является командной строкой PuTTy )

Если Jenkins на Windows, удаленный на Window, используйте psexec.exe

Если Jenkins на * nix, удаленный на * nix, используйте ssh

Если Jenkins на * nix, удаленном на Windows, (обновление 2015-01) Ansible http://docs.ansible.com/intro_windows.html имеет поддержку для вызова команд Windows, например powershell, с компьютера с Unix / Linux, https://github.com/ansible/ansible-examples/blob/master/windows/run-powershell.yml

Скажите, какие операционные системы задействованы (как на Jenkins, так и на удаленном компьютере), и я расскажу об этом позже.

Редактировать:
На странице загрузки для psexec.exe перечислены все параметры командной строки. Вы будете хотеть что-то вроде:

psexec \\remotecomputername -u remoteusername -p remotepassword cmd /c <your commands here>
Замените <your commands here> фактическими командами, как если бы вы выполняли их из командной строки.

Обратите внимание, что psexec должен установить службу, и для этого требуются удаленные учетные данные командной строки / администратора с повышенными psexec .
Кроме того, вам нужно один раз запустить psexec -accepteula чтобы принять приглашение EULA.





jenkins