Linux Jenkins能否在管道构建期间停止/启动IIS网站?

Linux Jenkins能否在管道构建期间停止/启动IIS网站?,iis,jenkins,jenkins-pipeline,devops,Iis,Jenkins,Jenkins Pipeline,Devops,我目前正在尝试在Linux Jenkins服务器上构建一个php应用程序,然后通过发布CIFS插件使用IIS将构建构件发布到远程windows服务器 但是,如果应用程序正在使用,则通过CIFS发布的插件将不允许我写入windows共享,并说它正在使用。这让我相信,我需要在发布时以某种方式启动/停止IIS网站 有人有过这样的经历吗?是否有更好的方法将Linux上Jenkins的PHP工件发布到单独的远程windows IIS服务器?如果可以在windows服务器中设置Jenkins代理,然后,您可

我目前正在尝试在Linux Jenkins服务器上构建一个php应用程序,然后通过发布CIFS插件使用IIS将构建构件发布到远程windows服务器

但是,如果应用程序正在使用,则通过CIFS发布的插件将不允许我写入windows共享,并说它正在使用。这让我相信,我需要在发布时以某种方式启动/停止IIS网站


有人有过这样的经历吗?是否有更好的方法将Linux上Jenkins的PHP工件发布到单独的远程windows IIS服务器?

如果可以在windows服务器中设置Jenkins代理,然后,您可以在Jenkins构建步骤中使用IIS应用程序命令来启动/停止您的IIS

当然可以:)您必须确保Jenkins具有启动和停止IIS服务器的权限,即Jenkins必须具有管理员权限

已编辑

如何将用户添加到管理组

在此之后,您可以使用start和stop命令在命令行中启动和停止IIS服务器(wirte bat脚本)


以下是我们最终所做的,但是还有一些其他建议值得研究:

  • 在我们要推送到的windows服务器上安装了openssh
  • 从jenkins服务器(linux)使用ssh在windows上运行powershell命令以停止网站
  • 命令是:sshuser@host'powershell.exe-命令启动网站名称'

安装IIS REST API,然后在构建脚本中使用它来控制IIS。我们的Jenkins服务器与IIS服务器是分开的。我们的Jenkins服务器也在使用Linux运行,不管Jenkins在哪里,只要Jenkins可以与windows通信(您正在传输文件),您所需要做的就是授予Jenkins管理员权限或授予他IIS应用程序组中的权限Linux box如何运行批处理脚本?对不起,我对devops tbh不太熟悉。看看我对我们现在所做所接受的回答。如果您仍然认为批处理脚本更好,请告诉我。此外,我们与windows iis服务器通信的唯一方式是通过PublishOverfifs插件删除文件。实际上,linux不关心扩展名是什么,如果它找到第一行,即#,它将运行它/bin/bash,这样您就可以拥有一个名为“jenkins.iis”的文件,并且它可以正常工作:D,这就是linux的优点……这只是一个您可以想到的替代解决方案,如果您打算在需要更多控制的情况下在jenkins中使用管道功能,它将非常有用:)
STOP-net stop WAS
START-net start W3SVC