龙空技术网

用于在 Web 服务器上构建和部署应用程序的 Jenkins 管道脚本

墨谈科技 70

前言:

今天大家对“jenkins部署web项目”大概比较关心,兄弟们都需要学习一些“jenkins部署web项目”的相关内容。那么小编同时在网摘上搜集了一些有关“jenkins部署web项目””的相关内容,希望大家能喜欢,朋友们一起来了解一下吧!


每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。Jenkins Pipeline as script 为我们提供了一种更灵活的方式来创建我们的管道。让我们讨论一下用于构建和部署应用程序的 Jenkins 管道脚本。

在本文中,我们将讨论使用 Jenkins Pipeline 在 Web 服务器上自动化部署应用程序。我们将使用Jenkins Pipeline 作为脚本。Jenkins Pipeline as script 可以分为两种类型:声明式和脚本式。在这里,我们将使用声明式 Jenkins 管道脚本。

必备知识Git, GitHub使用 Maven 构建 Java 应用程序詹金斯Web 服务器,如 Tomcat、JBoss 等。

如果您是 Jenkins Pipeline 脚本的新手,那么我们建议您先阅读本文。

介绍

在这里,我们将在 Tomcat 之上部署一个示例 Java 应用程序。为了自动化该过程,我们将使用 Jenkins 创建管道。我们将创建一个 Jenkins 管道作为脚本,这有巨大的好处。

使用的工具/技术基于 Java 的应用程序——我们正在使用一个简单的 Java 应用程序。Git——供应链管理工具。GitHub——我们的源代码在 GitHub 上。Maven – 我们正在使用 Maven 构建 Java 应用程序。Jenkins – Jenkins 用作管道工具。JFrog Artifactory – 我们将构建工件存储在 JFrog Artifactory 中。Tomcat Web 服务器——我们将在 Tomcat Web 服务器上部署示例 Java 应用程序。管道框图

有两种选择:

选项 1:将构建工件推送到存储库,然后从 Tomcat 主机上的存储库下载它。选项 2:使用 SCP 将构建工件发送到 Tomcat 主机。选项 1:将构建工件推送到存储库,然后从 Tomcat 主机上的存储库下载

在这种情况下,在构建之后,我们将工件推送到存储库并将其下载到 Tomcat 主机上。

选项 2:使用 SCP 将构建工件发送到 Tomcat 主机

在这种情况下,在构建之后,我们将使用 SCP 将工件发送到 Tomcat 主机。

詹金斯配置

在进入 Jenkins 管道脚本之前,我们需要确保以下配置。

我们需要在Jenkins的“全局工具配置”(“管理Jenkins→全局工具配置”)中提供JAVA_HOME, 。MAVEN_HOME由于我们使用 JFrog Artifactory 来存储构建工件,因此我们使用 Jenkins 配置了 JFrog Artifactory。为此,我们在 Jenkins 中安装了 JFrog 插件,并在“管理 Jenkins → 配置系统”下配置了详细信息。在Jenkins服务器上,我们需要生成SSH密钥,需要将Jenkins服务器的公钥放入Tomcat主机中,这样Jenkins就可以免密码连接Tomcat主机了。在 Jenkins 服务器上,我们需要在文件中进行StrictHostKeyChecking noOR 。StrictHostKeyChecking accept-new/etc/ssh/ssh_config

详细信息请关注这篇文章。

Jenkins Pipeline Script下面是 Jenkins 流水线脚本:
pipeline {
agent any
tools {
maven "LocalMVN"
}
stages {
stage('Checkout') {
steps {
withCredentials([string(credentialsId: 'GitHub_Token', variable: 'github_token')]) {
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
extensions: [[$class: 'CleanCheckout']],
userRemoteConfigs: [[url: '; + env.github_token + '@' + 'github.com/sk617/simple-java-maven-app.git']]
])
}
}
}
stage('Build') {
steps {
sh "mvn -Dmaven.test.failure.ignore=true clean package"
}
}
stage('Push artifacts into artifactory') {
steps {
rtUpload (
serverId: 'my-artifactory',
spec: '''{
"files": [
{
"pattern": "*.war",
"target": "example-repo-local/build-files/"
}
]
}'''
)
}
}
stage('Pull artifacts & deploy on tomcat') {
steps{
withCredentials([usernamePassword(credentialsId: 'my-artifactory-cred',
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD')]) {
sh 'ssh ubuntu@149.158.89.34 curl -u ' + USERNAME + ':' + PASSWORD + ' -X GET "Your_JFrog_Artifactory_URL_of_file" --output /opt/tomcat9/webapps/deploy.war'
}
}
}
}
}
阶段:Checkout

在这个阶段,源代码将从 GitHub 上获取。如果它是私人仓库,那么我们需要提供凭证。在上面的脚本中,我们提供了凭证。

阶段:Build

在此阶段,将使用 Maven 构建源代码。在构建结束时,它会生成一个 war 文件。

阶段:将工件推入 Artifactory

在此阶段,构建工件被推送到 Artifactory 中。

阶段:拉取工件并部署在 Tomcat 上

在此阶段,工件从 Artifactory 中提取并部署到 Tomcat Web 服务器上。

谢谢你。

标签: #jenkins部署web项目