前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Centos7 下载安装配置Jenkins教程

Centos7 下载安装配置Jenkins教程

作者头像
全栈程序员站长
发布于 2022-08-27 09:55:56
发布于 2022-08-27 09:55:56
1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

Centos7 下载安装配置Jenkins教程

这篇博文总结下如何下载安装和配置Jenkins

1.1 Jenkins 安装条件

Jenkins通常使用内置的Java Servlet容器/应用程序服务器(Jetty)在其自己的进程中作为独立应用程序运行。

  • 机器需要至少10GB 磁盘空间,最少256MB内存, 建议不低于512MB
  • JDK 8 或JDK 11 以上
  • 2.164(2019-02)及更高版本:Java 8或Java 11
  • 2.54(2017-04)及更高版本:Java 8
  • 1.612(2015-05)及更高版本:Java 7

1.2 Jenkins 安装方式

Jenkins 安装方式有三种:

  • 第一种 直接下载war包方式
  • 第二种通过下载Docker 容器方式
  • 第三种通过包管理器方式安装

1.2.1 直接下载war包方式进行安装配置Jenkins

接下来我们讲解下如何使用下载war 包方式进行安装和配置Jenkins.

具体步骤如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -jar jenkins.war --httpPort=8080

或者可以编写一个Shell脚本:

  • 创建一个文件输入: vi startup.sh
  • 编辑内容如下:

#!/bin/bash nohup java -jar jenkins.war --httpPort=8686 &

  • 然后我们将看到类似如下的信息:

记下上图中出现的随机密码字符串,待会安装要用。

  • 打开浏览器,访问 http://localhost:8080
  • 等待一会后我们可以看到如下所示内容后,输入刚才记下的随机密码字符串并点击Continue
  • 选择按照推荐的插件或自定义选择所需要安装的插件
  • 这里我们选择推荐的插件进行安装

安装时间可能有点长,稍作等候。

  • 然后安装成功后我们需要创建一个管理员账号
  • 我们选择Save and Continue
  • 点击Start Using Jenkins 后我们可以看到如下内容:

1.2.2 Docker 方式安装Jenkins

Docker 方式安装首先需要安装Docker 环境,具体安装方法见我的另外一篇博文:如何在Centos7上安装或卸载Docker?

安装完Docker 之后,我们需要去Docker 仓库查找我们的Jenkins.

Docker 官方仓库地址:https://hub.docker.com/

打开官方仓库网址后,我们输入Jenkins 然后点击搜索即可。

值得注意的是当我们打开这个后你会发现有这么一句话:

翻译成中文就是:

不推荐使用此image,而应使用Jenkins社区在项目发布过程中提供和维护的jenkins / jenkins:lts image。 在LTS 2.60.x之后,此处找到的image将不再进行任何更新。 请相应地调整您的用法。

也就是说,我们不要再选择这个仓库镜像了,而是应该选择jenkins/jenkins:lts 这个长期支持版本。

长期支持版本地址:https://hub.docker.com/r/jenkins/jenkins

打开后我们可以看到如下提示:

  • 要使用长期支持版本就在命令行输入如下内容:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull jenkins/jenkins:lts

  • 要使用最新版本就在命令行输入如下内容:

docker pull jenkins/jenkins 这里建议我们选择长期支持版本

如果我们选择的是长期支持版本,运行它就输入如下命令即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts

然后其他的安装步骤和之前的那种直接下载方式基本上一致了就不再重复讲解。

如果想指定jenkins 的安装路径,那么需要执行如下命令 docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts 这将会自动创建jenkins_home 文件夹,它将在容器停止/重新启动/删除后继续存在。

1.2.3 包管理器方式安装Jenkins(未测试)

  • 安装仓库镜像
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  • 安装key
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Tips: 这里要导入rpm包签名密钥防止包管理器下载的软件地址被伪造, 用于签名软件包的gpg密钥已于2020年4月16日更新,因此,如果如果在此日期之前导入,则需要重新导入。

  • 更新yum
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum upgrade
  • 安装Jenkins
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install jenkins
  • 重启
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl daemon-reload
  • 启动Jenkins
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start jenkins
  • 检查是否启动成功
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status jenkins

如果返回这样的内容说明成功:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago
...

1.3 项目集成Jenkins参考配置文件

如果想让项目集成Jenkins,这里提供一个可供参考的配置文件。

Jenkinsfile.groovy

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pipeline{ 
   
    agent { 
   
        label 'LABEL_192.168.159.160'
    }
    triggers{ 
    cron('H 11 * * *') }
    environment { 
   
        GIT_EMAIL = sh(script: '''git log -3 | cat - | grep Author | grep -v nobody@nowhere | awk -F'[<>]' '{print $2}' | head -1 ''',returnStdout: true).trim()
        GIT_PROJECT = sh(script: '''git remote -v | head -1 | awk -F '/' '{print $4}' ''',returnStdout: true).trim()
        GIT_REPO = sh(script: '''git remote -v | head -1 | awk -F'[/.]' '{print $7}' ''',returnStdout: true).trim()
        TEAM_NAME = sh(script: '''git remote -v | head -1 | awk -F'[/.]' '{print $7}' | awk -F '_' '{print $1}' | tr '[a-z]' '[A-Z]' ''',returnStdout: true).trim()
        GIT_COMMIT = sh(script: '''git rev-parse HEAD ''',returnStdout: true).trim()
        GIT_CHANGE = sh(script: '''git show --stat $GIT_COMMIT | tail -1 ''',returnStdout: true).trim()
        GIT_AUTHOR = sh(script: '''git log -3 | cat - | grep Author | grep -v nobody@nowhere | awk -F'[<>]' '{print $1}' | awk -F ':' '{print $2}' | sed 's/ //g' | head -1 ''',returnStdout: true).trim()
    }
    stages{ 
   
        stage("trigger1"){ 
   
            steps{ 
   
                sh 'echo commit > $WORKSPACE/.trigger_type'
            }
        }
        stage("trigger2"){ 
   
            when { 
    changeRequest() }
            steps{ 
   
                sh 'echo pr > $WORKSPACE/.trigger_type'
            }
        }
        stage("DailyBuild"){ 
   
            when { 
    triggeredBy 'TimerTrigger' }
            steps{ 
   
                sh '''
                    echo daily > $WORKSPACE/.trigger_type
                    GIT_SSH_COMMAND="ssh -i $HOME/.ssh/seat_rdgit/id_rsa";export GIT_SSH_COMMAND
                '''
            }
        }
        stage("Build"){ 
   
            steps{ 
   
                sh 'echoEnv "Build"'
				sh 'mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent compile -Dmaven.test.failure.ignore=true'
                echo "---------这里替换为执行编译的步骤---------"
            }
        }
        stage("UnitTest"){ 
   
            steps{ 
   
                sh 'echoEnv "UnitTest"'
                echo "========executing UT========"
                echo "---------执行单元测试----------"
                sh 'mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent test -Dmaven.test.failure.ignore=true'
                    echo "---------这里替换为执行UT的步骤---------"
            }
            post{ 
   
                success{ 
   
                    echo "========UT executed successfully========"
                }
                failure{ 
   
                    echo "========UT execution failed========"
                    echo "--------单元测试失败--------------"
                }
            }
        }
        stage("SonarScan") { 
   
            when{ 
   
                anyOf{ 
   
                    branch 'dev'
                    changeRequest()
                }
            }
            steps { 
   
                sh 'echoEnv "SonarScan"'
                echo "---------执行静态代码扫描----------"
                //sh 'mvn sonar:sonar'
            }
        }
    }
    post{ 
   
        always{ 
   
            echo "========always========"
            emailext(
                subject: '${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志',
                body: '${FILE,path="/opt/app/jenkins/template/email.html"}',
                to: env.GIT_EMAIL
            )
        }
        success{ 
   
            sh 'echoEnv "SUCCESS"'
            echo "========pipeline executed successfully ========"
        }
        aborted{ 
   
            sh 'echoEnv "ABORT"'
        }
        failure{ 
   
            sh 'echoEnv "FAIL"'
            echo "========pipeline execution failed========"
        }
    }
}

1.4 参考资料

本篇完~

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146614.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
初试Jenkins2.0 Pipeline持续集成
哎_小羊
2018/01/02
2K0
初试Jenkins2.0 Pipeline持续集成
jenkins部署java程序
章工运维
2023/07/01
2980
DevOps整合Jenkins+k8s+CICD
基于现在的互联网现状,更推崇敏捷式开发,这样就导致项目的迭代速度更快,但是由于开发团队与运维团队的沟通问题,会导致新版本上线的时间成本很高。这又违背的敏捷式开发的最初的目的。 那么如果让开发团队和运维团队整合到成一个团队,协同应对一套软件呢?这就被称为DevOps。 DevOps,字面意思是Development &Operations的缩写,也就是开发&运维。 然字面意思只涉及到了开发团队和运维团队,其实QA测试团队也是参与其中的。 网上可以查看到DevOps的符号类似于一个无穷大的符号
IT运维技术圈
2022/10/24
3K1
从0搭建属于自己的Jenkins持续集成平台
Jenkins在日常工作中占据了一个非常重要的角色,帮助我们节省了大量用于构建的时间。有些公司有运维大哥对Jenkins进行维护,如果没有那只能自己动手了。俗话说的好自己动手丰衣足食,所以本文就从0开始搭建属于自己的Jenkins持续平台。主要包含,普通项目构建、流水线构建、多分支流水线构建并将构建结果辅以钉钉通知。
不一样的科技宅
2020/07/08
1.1K1
Jenkins-安装和运维
/usr/lib/systemd/system目录下新建一个 jenkins.service的文件
suveng
2021/12/06
4150
CICD之Jenkins使用
jenkins把项目拉倒jenkins服务器,放到workspace(一般我们的源代码都在这里),开始进行流水线处理。
全栈程序员站长
2022/09/02
5310
7.Jenkins插件安装使用帮助说明
项目描述: Jenkins流水线步骤,提供SSH工具,如命令执行或文件传输,以实现持续交付。 项目地址: https://github.com/jenkinsci/ssh-steps-plugin
全栈工程师修炼指南
2022/09/29
2.1K0
7.Jenkins插件安装使用帮助说明
第2章 Jenkins Server的安装部署方式
本章阐述Jenkins Server的安装部署方式。基于Tomcat、CentOS、MacOS、Docker、Kubernetes、Windows部署。部署后的基础配置。
DevOps云学堂
2020/07/24
1.2K0
第2章 Jenkins Server的安装部署方式
jenkins配置android发布
参考:CentOS7安装Android SDK | 章工运维 (opens new window)
章工运维
2023/06/10
3740
10分钟搞定让你困惑的 Jenkins 环境变量
Jenkins, DevOps 技术栈的核心之一,CI/CD 离不开编写 Pipeline 脚本,上手 Jenkins ,简单查一下文档,你就应该不会被 agent,stages,step 这类关键词弄懵,也能很快构建出 pipeline 的骨架
用户4172423
2021/01/13
1.3K0
10分钟搞定让你困惑的 Jenkins 环境变量
软件测试|Jenkins创建Pipeline
近期使用Jenkins帮业务团队搭建过一次Pipline,并将测试流程加入到了Pipline中,将搭建过程的做了简单记录。考虑到项目的保密性,该文章仅演示搭建步骤和工具使用,文中的代码均为伪代码。
霍格沃兹测试开发Muller老师
2023/01/09
1.6K1
使用 Jenkins 构建 CI/CD 之多分支流水线指北
由于公司的 Jenkins 配置没有部署成功的通知,在我学了几天的 Jenkins 后终于是对公司的 Jenkins 配置下手了,结果我刚装完 dingtalk 插件自动重启后,发现之前主管配置的构建项目数据都丢失了,正好给了我练手的机会,于是就有了以下从0到1的辛酸历程。
DevOps时代
2021/04/20
2.3K0
使用 Jenkins 构建 CI/CD 之多分支流水线指北
【DevOps实践】3. Jenkins流水线搭建golang项目持续集成环境
Jenkins是一个自动化服务器,目前发展超过15年,比较成熟的CI工具(也可以CD)能够实现自动化集成发布。 Jenkins构件任务一般有2种,一种是“构建一个自由风格的软件项目”和“流水线”项目。本文讲解的是使用pipeline流水线搭建一个GO工程的持续集成任务的完整方法。
辉哥
2021/03/21
5.1K0
Linux-安装 jenkins
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
acc8226
2022/05/17
2K0
Linux-安装 jenkins
Jenkins + Docker 助力 Serverless 应用构建与部署
近日,使用 Serverless 开发了一个应用。其中 CI/CD,是需要考虑的一个问题。这里用到了 Jenkins 和 Docker。并且 Jenkins Pipeline 运行在容器中。
donghui
2021/01/06
2.1K0
Jenkins + Docker 助力 Serverless 应用构建与部署
基于Jenkins Pipeline构建企业级CI/CD
本设计通过Jenkins Generic Webhook Trigger 插件实现了基于Webhook自动触发流水线构建。
用户1107783
2024/05/21
2180
基于Jenkins Pipeline构建企业级CI/CD
DevOps平台
DevOps定义(来自维基百科): DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
Zephery
2019/12/06
1.4K0
Docker安装Jenkins实现项目自动部署(Java Web项目) 顶
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
wuweixiang
2018/12/12
2.8K0
Docker安装Jenkins
Jenkins主要分为两种版本:一种是长期支持的稳定版本,一种是定期发布的每周更新版本。
wangmcn
2022/07/26
2.7K0
Docker安装Jenkins
jenkins配置ios发布
章工运维
2023/06/10
3330
相关推荐
初试Jenkins2.0 Pipeline持续集成
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验