Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >jenkins 入门教程(下)

jenkins 入门教程(下)

作者头像
菩提树下的杨过
发布于 2018-01-18 09:34:58
发布于 2018-01-18 09:34:58
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

上回继续学习jenkins,这次主要来看一些疑难杂症:

一、yum install安装方式

除了直接java -jar jenkins.war方式,还可以用yum安装,这种方式下提供了更多的可配置选项,更适合生产环境控制jenkins的行为。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum update -y (可选)
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install deltarpm (可选)
sudo yum install jenkins

安装完成后,可用 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service jenkins start/stop/restart

不过,我在centos 7环境上测试下来,/etc/rc.d/init.d/jenkins这个脚本写得有点小问题,如果java不在默认目录下,会导致启动失败

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vi /etc/rc.d/init.d/jenkins

定位到67行,会发现该脚本会从以下位置找java可执行文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  candidates=" 
  /etc/alternatives/java
  /usr/lib/jvm/java-1.6.0/bin/java
  /usr/lib/jvm/jre-1.6.0/bin/java
  /usr/lib/jvm/java-1.7.0/bin/java
  /usr/lib/jvm/jre-1.7.0/bin/java
  /usr/lib/jvm/java-1.8.0/bin/java
  /usr/lib/jvm/jre-1.8.0/bin/java
  /usr/bin/java
  "

如果java没安装在这些目录下,启动就会失败,解决办法:把java所在的正确位置加入其中即可,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
candidates="
/opt/app/jdk1.8.0_65/bin/java
"

注:这样处理后,还要执行一下sudo systemctl daemon-reload,然后就可以service jenkins start了,如果还出错,尝试 cd /etc/rc.d/init.d,然后sudo ./jenkins start 进一步排查。建议同学们把这个启动脚本仔细阅读一下,可以发现很多有用的信息,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JENKINS_WAR="/usr/lib/jenkins/jenkins.war"
JENKINS_CONFIG=/etc/sysconfig/jenkins
JENKINS_PID_FILE="/var/run/jenkins.pid"  
PARAMS="--logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon"
--simpleAccessLogger.file=/var/log/jenkins/access_log 

上面这些参数定义了配置文件、war包、pid文件、日志的位置,出问题时,我们可以直接到这些位置去查看详情。

比如:端口8080被占用了,需要更改启动端口,直接查看/etc/sysconfig/jenkins这个文件,找到

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JENKINS_PORT="8080"

修改一下即可。

/etc/sysconfig/jenkins这个文件也建议通篇阅读,里面有一些很关键的信息,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JENKINS_HOME="/var/lib/jenkins"
JENKINS_USER="jenkins"
JENKINS_AJP_PORT="8009"
JENKINS_DEBUG_LEVEL="5"
JENKINS_ENABLE_ACCESS_LOG="no"

二、jenkins的启动身份问题

以 java -jar jenkins.war 这种方式启动时,默认会在当前用户根目录下,创建.jenkins目录,所有与jenkins相关的内容,包括配置文件,用户创建的数据都在该目录下,如果你切换另一个账号登录linux,然后重新启动,会发现之前所有创建的项目包括用户全没了,因为此时jenkins的工作目录切换到新用户的~/.jenkins下了,所以一般情况下,不要随意切换启动身份。

以 yum install安装的jenkins,由于工作目录是在/etc/sysconfig/jenkins里写死的,所以不存在这个问题,但是这种方式下,很多目录都是放在/var打头的位置,权限较少,如果出现无法写文件之类的错误,注意调整jenkins用户或目录的权限。

三、安全策略配置错误,导致无法使用jenkins的问题

有时候自己瞎折腾,把匿名用户的管理权禁止了,然后能登录的用户又忘记了勾选管理权限,这时就懵了,不要着急,进入~/.jenkins或/var/lib/jenkins,编辑config.xml 找到

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<useSecurity>true</useSecurity>

大致是第7行,然后把下面的二个节点改成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$None" />

保存,然后重启jenkins,就ok了。

如果没有什么重要数据的话,也可以更暴力一点,把~/.jenkins或/var/lib/jenkins下把除plugins之外的目录全干掉即可,相当于除插件之外,所有内容全初始化。

四、代码提交后,jenkins如何自动构建?

有二种做法,以bitbucket这一类git代码托管的项目为例:

a)Trigger Builds remotely

这种方式适合jenkins系统能公网访问的场景,大致原理是jenkins的每个项目,都有一个对外公开的url,然后在bitbucket的项目里配置一个所谓的webHook勾子,勾子里填写的url就是jenkins的这个url,每次有代码提交到bitbucket时,bitbucket会回调整这个url,通知jenkins触发build

参考上图,在jenkins中填写一个token(最好是一个唯一随机字符串),然后到bitbucket上进入项目的setting

添加一个Webhooks,如下图,URL填写的就是jenkins对外公开的回调url

这种方式是实时的,一旦有代码push到bitbucket上,就会触发jenkins发布。

b) Poll SCM

如果没有公网URL,就只能用下面这种方式了,大概意思是,每隔固定的时间去主动拉取代码,如果有变化,则触发build

图中的*/1 * * * * 表示每分钟拉一次代码

五、如何与bitbucket账号集成

jenkins可以与bitbucket上的某个账号认证集成,这样就省去了登录的过程,操作步骤:

a)bitbucket中生成key/screct,参考下图

b)jenkins中修改认证方式

几个关键地方,ClientId即为bitbucket中的Key, Client Screct即为bitbucket中的Screct,然后在下面的User/Group中切记要添加一条记录,用户名为bitbucket里的用户名,然后勾选Administer框(或其它你希望的权限),否则登录后没有任何权限。

这样设置后,不用输入用户名、密码就能直接进入jenkins了,但这种认证方式只能绑定一个bitbucket账号,个人感觉在公司里用处不大,除非整个开发团队共用一个bitbucket账号,然后每个人负责独立的一个项目,这显然不太现实。 

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jenkins安装
Jenkins是一个自包含的开源自动化服务器,可用于自动化与构建,测试以及交付或部署软件有关的各种任务。 Jenkins可以通过本机系统软件包Docker安装,甚至可以由安装了Java Runtime Environment(JRE)的任何计算机独立运行。
mikelLam
2022/10/31
5540
搭建jenkins实现自动化部署微服务_自动化部署平台搭建
  Jenkins会随系统启动而启动。详情参照/etc/init.d/jenkins   Jenkins会创建一个用户叫做jenkins, 如果你修改了user,则要修修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins   如果遇到问题,查看日志/var/log/jenkins/jenkins.log   配置文件/etc/sysconfig/jenkins   默认启用8080
全栈程序员站长
2022/09/19
2.3K0
搭建jenkins实现自动化部署微服务_自动化部署平台搭建
Linux-安装 jenkins
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
acc8226
2022/05/17
2.1K0
Linux-安装 jenkins
CentOs8 Linux安装Jenkins、部署并运行springboot项目
vim详解:点击 i 进入编辑模式即可编辑文本,编辑完之后Esc退出编辑模式, :wq 保存退出(注:这里是有【一个冒号+wq】),不保存就直接退出是 :q! (冒号+q+感叹号)
OwenZhang
2021/12/08
7510
CentOs8 Linux安装Jenkins、部署并运行springboot项目
Jenkins学习(一)——Jenkins安装
linux安装jenkins后会在你原本的系统电脑桌面上生成一个名为initialAdminPas sword的文档,使用记事本打开,将里面的内容复制过来即可。
传说之下的花儿
2023/04/16
5770
Jenkins学习(一)——Jenkins安装
在centos7上安装Jenkins
在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum install jenkins 如果没有java的话要安装java sudo yum install j
Ryan-Miao
2018/03/14
1.2K0
jenkins安装部署
jenkins安装部署 jenkins安装部署 repo sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://
以谁为师
2019/05/31
8280
在CentOS7上搭建Jenkins
解决办法:配置权限,按照上面安装 jenkins 中的 第三点** [配置 jenkins 权限(点我直达)**](https://www.yuque.com/pxs/fo1e8s/aed00c02-7c81-41d0-961b-6ea527dec51f#gFsHl)重新操作一遍或者检查下哪一步骤遗漏了。
leader755
2022/03/09
9520
在CentOS7上搭建Jenkins
从零学习Jenkins部署SpringBoot项目
之前项目中虽然使用过 Jenkins,但是都只是使用,没有自己搭建过,完整部署一个项目。既然工作中没有独立部署过,那么就只能自己动手实操一番,技多不压身嘛。
云原生架构说
2022/09/24
8550
从零学习Jenkins部署SpringBoot项目
Install Jenkins
参考 Installing Jenkins on Red Hat distributions
franket
2021/08/12
6400
CentOS 7 下Jenkins安装部署教程
Jenkins是一个开源的支持自动化构建、部署等任务的平台。基本上可以说是持续集成(CI)、持续发布(CD)不可或缺的工具。
KenTalk
2018/09/11
10.3K0
CentOS 7 下Jenkins安装部署教程
jenkins实战系列
本文主要介绍了在linux 下如何部署jenkins.以及通过jenkins 如何发布php.以及java 程序,利用jenkins 来实现邮件告警及时了解项目发布过程中产生的问题。
互联网老辛
2018/12/10
1.2K0
工具系列 | Jenkins 构建伟大,无所不能
Jenkins 是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
Tinywan
2020/07/23
1.2K0
Centos安装jenkins及配置Nginx访问【部署工具】
1. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sinnoo
2020/11/13
1.1K0
Centos安装jenkins及配置Nginx访问【部署工具】
jenkins学习之centos6.9下安装
用户1141560
2017/12/25
1.1K0
jenkins学习之centos6.9下安装
jenkins升级版本遇到的问题
jenkins页面端提示需要升级jenkins 2.361.1,由于是测试服务器,所以就升级下,然后就有不可描述的事情发生了。
嘻哈记
2022/10/05
3.5K0
jenkins升级版本遇到的问题
打造企业级自动化运维平台系列(四):Jenkis 基础入门与安装
随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保 软件开发的质量已经慢慢成为开发过程中不可回避的问题。
民工哥
2024/01/18
9870
打造企业级自动化运维平台系列(四):Jenkis 基础入门与安装
jenkins使用方法详解
Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。
菲宇
2019/06/12
1.2K0
jenkins使用方法详解
CentOS + Jenkins
(adsbygoogle = window.adsbygoogle || []).push({});
拓荒者
2019/09/23
8940
CentOS + Jenkins
Jenkins的安装和使用(Centos7)
 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/it_lihongmin/article/details/80814384
拓荒者
2019/03/16
9980
Jenkins的安装和使用(Centos7)
相关推荐
Jenkins安装
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验