让Jenkins在部署时自动为新的GIT分支配置IIS应用程序

时间:2017-06-28 08:59:07

标签: asp.net iis jenkins jenkins-pipeline

我已将Jenkins构建作业设置为具有Jenkinsfile的多分支管道项目。它会自动扫描git以获取分支以构建并将结果部署到IIS虚拟路径的子目录。这适用于前端代码。

但是,对于.Net项目,有必要将每个目录配置为IIS中的“应用程序”。

有没有办法让我的构建脚本自动创建“IIS应用程序”并为任何新发现的分支设置应用程序池?

1 个答案:

答案 0 :(得分:0)

将以下内容添加到Jenkins文件中:

stage("Deploy web application") {
  steps {
  ...
  virtualPath = '/myapp/' + env.BRANCH_NAME
  physicalPath = 'C:\myapp\\'+env.BRANCH_NAME
  addIisApplication('appName', 'appPoolName', virtualPath, physicalPath)
  }
}

def addIisApplication(appName, appPoolName, virtualPath, physicalPath) {
  iisAppCmd("add app /site.name:" + appName + " /path:" + virtualPath +" /physicalpath:"+physicalPath)
  iisAppCmd("set app "+appName + virtualPath+" /applicationpool:" + appPoolName)
}

def iisAppCmd(args) {
  bat 'C:\\Windows\\System32\\inetsrv\\appcmd.exe ' + args + " & exit 0" // ignore already exists error
}

如果您需要在其他服务器上创建IIS应用程序,请通过SysInternals PsExec调用appcmd.exe

现在,只要您创建新功能分支并推送它,Jenkins就可以构建并将其部署到您的IIS服务器。