我有一个持续集成服务器(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)的简单解决方案:
备注:
在尝试了psexec.exe一段时间后,我结束了一个不同的方法。
Psexec.exe和通过网络复制文件有点慢,不稳定,特别是因为我工作的域有一个每个月都更改密码的策略(打破了构建)。
最后,我采用了主/从方法,这个方法更快,更稳定。 由于我不必使用psexec.exe,也不必通过网络复制文件。