在本文中,我们将讨论使用 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 主机。
在这种情况下,在构建之后,我们将工件推送到存储库并将其下载到 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: 'https://' + 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 服务器上。
谢谢你。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.