我正在使用Jenkins服务器为我的Node.js应用程序设置持续集成。对于部署,我使用的是powershell脚本,为此我安装了powershell插件。该脚本需要按顺序执行以下任务。
# Step1
# Stop all the currently running services on web server. For that I am trying to
# execute maintenance.js remotely from the build server under node
node \\SharedWebServerFolder\Utilities\maintenance.js stopServices
# Step2
# Copies all the resources to server at \\SharedServerWebFolder
# Step3
# Start the services
node \\SharedWebServerFolder\Utilities\maintenance.js startServices
执行Step2没问题。我的问题是关于Step1和Step3。
我应该从构建服务器远程执行maintenance.js
吗?这甚至可能吗? (假设我在构建服务器上安装了node.js)
我是否应该在本地执行maintenance.js
的Web服务器上再添加一个PowerShell脚本?因此,基本上部署脚本(来自构建服务器)将执行远程PowerShell脚本(位于Web服务器上),远程PowerShell脚本将在本地执行maintenance.js
。在这种情况下,我不必在构建服务器上安装Node.js.
建议什么?
答案 0 :(得分:0)
人们通常使用ssh远程执行命令。我想你想从你的生产/登台服务器上的构建服务器执行一个命令。
请参阅linux execute command remotely
这很简单,远程盒子是一个linux盒子。
如果您的遥控器是Windows机器,那么您仍然可以在其上运行ssh服务器,但设置起来更加痛苦。你可以试试Bitvise SSH Client。
正确设置ssh客户端后,您应该能够从构建服务器执行远程命令。
答案 1 :(得分:0)
我已经使用Jenkins SSH插件在我的远程登台/生产服务器中进行部署。我建议在Web服务器计算机而不是构建服务器中执行'maintenance.js'。您只需触发'maintenance.js'执行使用ssh从构建服务器升级/生产服务器。我相信很难从构建服务器远程执行'maintenance.js'。