在jenkins的远程服务器(windows)上运行批处理脚本

我有一个持续集成服务器(jenkins),它build立我的代码(检查编译错误),并运行testing,然后将文件部署到远程服务器(不是一个战争文件,但实际的文件结构)jenkins插件,它允许我通过桑巴传输文件,它每晚做。

现在,我需要做的是在远程服务器上运行一个ant命令。 之后,我需要在远程服务器上启动应用程序服务器,通过从命令行运行.bat文件启动应用程序服务器。

我很笨,如何做到这一点,我知道jenkins是能够运行批处理命令,但我怎么让他们运行在服务器的上下文,而不是构build服务器的上下文?

如果在Windows上Jenkins,远程* nix,使用plink.exe (这本质上是命令行PuTTy

如果在Windows上Jenkins,在Window上远程使用psexec.exe

如果Jenkins在* nix上,则在* nix上远程使用ssh

如果Jenkins在* nix上,远程在Windows上(update 2015-01)Ansible http://docs.ansible.com/intro_windows.html支持从unix / linux机器调用Windows命令,例如powershell, https:/ /github.com/ansible/ansible-examples/blob/master/windows/run-powershell.yml

告诉我什么操作系统(包括詹金斯和远程),我会进一步闪光。

编辑:
psexec.exe的下载页面列出了所有命令行选项。 你会想要的东西沿线:

psexec \\remotecomputername -u remoteusername -p remotepassword cmd /c <your commands here>
用实际的命令替换<your commands here> ,你可以在命令提示符下执行它们。

请注意, psexec首先需要安装一个服务,并要求提升命令提示符/管理员远程凭据来这样做。
另外,您需要运行一次psexec -accepteula来接受EULA提示。

在上面的Slav回答之后,下面是Jenkins(* nix)到远程(windows)的简单解决方案:

  1. 在远程窗口上安装一个SSH服务器( MobaSSH家庭版对我来说效果不错)
  2. 确保您的Jenkins机器上的Jenkins用户具有所需的证书,以便与您的远程设备建立SSH连接(您可以简单地打开终端和ssh到远程设备,然后接受认证,确保为Jenkins用户)。
  3. 你现在可以在你的Jenkins作业中添加一个执行shell编译阶段,它可以通过SSH连接到远程的Windows机器上。

备注:

  1. 建立的连接可能需要一些额外的工作 – 您可能必须设置Windows环境变量或映射网络驱动程序,以使您的执行命令或批处理文件在Windows机器上正常工作。
  2. 如果你想运行图形用户界面相关的操作,这个解决方案可能不相关(以下我的工作在运行需要GUI操作的自动化测试)。
  3. 使用Jenkins SSH插件是一个问题,在这里看到。

在尝试了psexec.exe一段时间后,我结束了一个不同的方法。

Psexec.exe和通过网络复制文件有点慢,不稳定,特别是因为我工作的域有一个每个月都更改密码的策略(打破了构建)。

最后,我采用了主/从方法,这个方法更快,更稳定。 由于我不必使用psexec.exe,也不必通过网络复制文件。