我有一个持续集成服务器(Jenkins),它可以构建代码(检查编译错误)并运行测试,然后将文件部署到远程服务器(不是war文件,而是实际的文件结构),我使用Jenkins插件,它允许我每晚通过samba传输文件。
现在,我需要做的是在远程服务器上运行ant命令。之后,我需要在远程服务器上启动应用程序服务器,然后通过从命令行运行.bat文件来启动应用程序服务器。
我完全不知道如何实现此目的,我知道Jenkins可以运行批处理命令,但是如何使它们在服务器的上下文中而不是在构建服务器的上下文中运行?
如果Windows上的Jenkins在* nix上远程,则使用plink.exe(本质上是命令行PuTTy)
plink.exe
PuTTy
如果Jenkins在Windows上,而在Windows上,则使用 psexec.exe
psexec.exe
如果Jenkins在 nix上,而远程在 nix上,则使用 ssh
ssh
如果Windows上* nix上的Jenkins远程(更新2015年1月)Ansible http://docs.ansible.com/intro_windows.html支持从unix / linux机器https:/调用Windows命令,例如powershell。/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 \\remotecomputername -u remoteusername -p remotepassword cmd /c <your commands here>
<your commands here>
请注意,psexec首先需要安装服务,并需要提升的命令提示符/管理员远程凭据才能安装。 另外,您需要运行psexec -accepteula一次以接受EULA提示。
psexec
psexec -accepteula