Centos7 下载安装配置Jenkins教程

Centos7 下载安装配置Jenkins教程这篇博文总结下如何下载安装和配置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.

具体步骤如下:

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
    在这里插入图片描述
  • 访问首页: http://127.0.0.1:8080/
    在这里插入图片描述
  • 点击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

打开后我们可以看到如下提示:
在这里插入图片描述

  • 要使用长期支持版本就在命令行输入如下内容:
docker pull jenkins/jenkins:lts
  • 要使用最新版本就在命令行输入如下内容:
docker pull jenkins/jenkins

这里建议我们选择长期支持版本

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

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(未测试)

  • 安装仓库镜像
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  • 安装key
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

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

  • 更新yum
sudo yum upgrade
  • 安装Jenkins
sudo yum install jenkins
  • 重启
sudo systemctl daemon-reload
  • 启动Jenkins
sudo systemctl start jenkins
  • 检查是否启动成功
sudo systemctl status jenkins

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

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

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 参考资料

本篇完~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • c语言运行后电脑很卡,如何让电脑提速,电脑卡是什么原因?

    c语言运行后电脑很卡,如何让电脑提速,电脑卡是什么原因?前言昨天的文章被限制了,正在申诉刚好最近有网友问小编这样一个问题:花了六千买的独显笔记本,用了才一年就卡的不行了,请问电脑卡是什么原因?小编对电脑还算颇有研究,看了网友电脑配置并不算低,导致电脑卡的原因主要在于系统优化与一些硬件方面的问题,下面小编就来说说如何让电脑提速。正文电脑卡是什么原因?导致电脑卡的原因有很多,综合来看,无非就是软件与硬件的问题。其中,软件层面主要是系统优化,硬件方面则主要是…

  • Java学习之集合篇

    Java学习之集合篇0x00前言上篇文章的常用类,其实就已经讲到了,这个ArrayList集合,但是ArrayList只是集合中的其中一种,那这篇文章就来讲讲关于集合的一些对象。0x01集合

    2021年12月12日
  • js正则匹配数字、大小写字母、下划线、中线和点[通俗易懂]

    js正则匹配数字、大小写字母、下划线、中线和点[通俗易懂]正则为:/[^a-z|A-Z|0-9|\-|_|\.]/gvarname=”hjhj测试[[[[[{{{{as9-._>@##$$?W??”;varregs=/[^a-z|A-Z|0-9|\-|_|\.]/g;name=name.replace(regs,””);console.log(“name:”,name);输出结果是:hjhjas9-

  • vue关闭eslint检查_vue 校验规则 提取

    vue关闭eslint检查_vue 校验规则 提取在创建项目时,手贱点击了yes。那么怎样关闭Eslint验证呢?1.打开build\webpack.base.conf.js2.找到如下代码,并ctrl点击红框框起的代码3.修改useEslint:true,为false4.最后,在修改完配置文件之后,在终端输入nmprundev。这一点非常重要,我就是没有漏了这步操作,弄了很久。…

  • RS232 DB9串口设备

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

  • pychaem激活码【在线注册码/序列号/破解码】

    pychaem激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号