Jenkins在同一台服务器上部署工件

问题描述 投票:1回答:1

我正在尝试创建一个Jenkins管道或一组itens来帮助我为我的项目创建一个自定义CI / CD,现在我被困在部署部分,我想部署在我的jenkins运行的同一台服务器上(Windows Server / IIS)。我还想知道如何部署到另一台服务器(Windows Server / IIS),第二个将是我的生产环境。

我已经设法使用Jenkins的两种方法克隆,构建和存档:

  • 管道我已经设法创建了一个管道,它将克隆我的项目,执行我的构建,然后从我的构建中存档工件。问题是,我现在如何部署工件?

这是我的管道脚本

node {
   stage('git clone') {
      // Get some code from a GitHub repository
      git 'my-git-url'
   }
   stage('npm install') {
      bat label: 'npm install',
      script: '''cd app
        npm install'''
   }
   stage('gulp install') {
      bat label: 'gulp install',
      script: '''cd app
      npm i gulp'''
   }
   stage('gulp production') {
      bat label: 'gulp production',
      script: '''cd app
      gulp production'''
   }
   stage('create artifact') {
      archiveArtifacts artifacts: 'app/dist/**',
      onlyIfSuccessful: true
   }
}
  • 自由式项目我设法创建了一个项目,该项目将使用Execute shell构建步骤和Archive the artifacts构建后操作构建并存档工件。如何使用此方法部署工件?在这种情况下,我试图触发第二个自由式项目来执行部署。
jenkins jenkins-pipeline
1个回答
0
投票

根据你的问题:“我想部署在我的jenkins运行的同一台服务器上(Windows Server / IIS)”..并且我会建议一些方法。

Windows

建议不要将Windows用作生产环境的操作系统。 Linux是唯一且最好的选择。

IIS

我不建议使用IIS来部署静态资产。你需要更轻便和可扩展的东西。你可以使用:

Deploy on IIS

在IIS上部署静态资产只是将文件复制并粘贴到某个文件夹上,并将IIS配置指向该文件夹:

Basic deploy on IIS using Jenkins

在构建命令之后,您只需要复制构建结果(css.js.html.etc)并粘贴到某个文件夹,例如c:// webapps / my-app(在IIS中预先配置)。

您可以使用自由样式项目或管道脚本(如https://stackoverflow.com/a/53159387/3957754)中的简单shell执行来执行此操作

您可以使用此方法在运行jenkins的同一服务器上部署静态资产。

Advanced deploy on IIS using Jenkins

Microsoft有一个名为MSDeploy的工具。基本上是一个命令行工具,用于在远程IIS上部署应用程序:

msdeploy.exe -verb:sync -source:contentPath="" -dest:contentPath=""

更多细节在这里:

注意:You can't run MS deploy commands that talk to the MSDeploy service on the same machine

Jenkins Agent

Jenkins代理是一个在远程服务器上运行的应用程序,而不是jenkins主节点运行的地方。

您的主jenkins可以在远程或localhost IIS中使用代理,并使用复制和粘贴方法执行jenkins作业。

© www.soinside.com 2019 - 2024. All rights reserved.