CentOS 8安装并配置Jenkins
概述
持续集成必备工具。
安装
启用Jenkins存储库。运行以下命令下载并导入GPG密钥:
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
输出:
已保存 “/etc/yum.repos.d/jenkins.repo” [85/85])
执行命令:
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
或者:
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
安装最新稳定版:yum install jenkins
,不要使用dnf install jenkins
。
如果这一步失败:
jenkins-2.289.1-1.1.noarch.rpm FAILED
http://pkg.jenkins.io/redhat/jenkins-2.289.1-1.1.noarch.rpm: [Errno 14] HTTPS Error 301 - Moved Permanently ] 0.0 B/s | 0 B --:--:-- ETA
正在尝试其它镜像。Error downloading packages: jenkins-2.289.1-1.1.noarch: [Errno 256] No more mirrors to try.
可以打开页面:https://get.jenkins.io/redhat/
点击最新版,在Windows本地下载,然后上传到CentOS服务器,执行安装:rpm -i jenkins-2.299-1.1.noarch.rpm
启动Jenkins服务并启用它以在系统引导时启动:systemctl enable jenkins
启动:systemctl start jenkins
另外如果启动jenkins报错,查看详细报错:Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录
创建软连接:ln -s /usr/local/java/bin/java /usr/bin/java
即可。
输入systemctl status jenkins
检查Jenkins是否正在运行。Jenkins运行正常。
注意:默认情况下,Jenkins使用8080端口,此端口也未被占用,但是http://localhost:8080打不开。
切换端口:vim /etc/sysconfig/jenkins
,
改为其他端口,并重启:systemctl restart jenkins
至此,安装成功。
查看密码:cat /var/lib/jenkins/secrets/initialAdminPassword
使用
安装插件
Jenkins初始化引导不要太棒,按照引导一步步操作即可。
允许用户注册
Manage Jenkins——security——Configure Global Security,允许用户注册。
Maven配置
JDK全局配置
Global Tool Configuration,配置JDK
之前看到各种资料提到CentOS自带OpenJDK,并强烈建议卸载之然后重新安装,一直不明所以。
配置/etc/profile
,JAVA_HOME
指向自带的OpenJDK路径,echo $JAVA_HOME
,java -version
,mvn -v
(maven配置依赖于JDK),一切正常。
直到今天碰到上面截图这个问题:Jenkins居然不能识别这个JDK路径。
原因参考:stackoverflow
解决方法:卸载,然后重新配置。
GitLab提交代码触发Jenkins构建
Jenkins需要安装GitLab和GitLab Hook插件。
参考向 GitLab 提交代码之后自动触发 Jenkins 构建,可能是全网第一吧,版本较新,图文清晰。
注意事项:
- 涉及到两个token:
- gitlab的access token,在gitlab服务器生成,用于Jenkins配置页面
- Jenkins的secret token,Jenkins生成,用于gitlab;注意在添加gitlab工程时,build trigger这里一定要点击advanced,Jenkins默认没有展开advanced,让我误以为不需要配置。点击advanced之后,点击generate生成secret token,然后粘帖到gitlab页面
- gitlab配置webhooks时,填写的URL是Jenkins生成的URL,不要乱写
- 提示webhook无法保存:Url is blocked: Requests to the local network are not allowed
报错
- 在Jenkins里面添加gitlab时,报错:
Failed to connect to repository : Error performing git command: git ls-remote -h http://192.168.20.149:8090/zhsh/file-center.git HEAD
,则需要安装Git。 - 报错(已剔除HTML标签):
Hook executed successfully but returned HTTP 403 Error 403 anonymous is missing the Job/Build permissionHTTP ERROR 403 anonymous is missing the Job/Build permission /project/test/user-center STATUS:403 MESSAGE:anonymous is missing the Job/Build permission
是因为在Jenkins端没有保存Jenkins GitLab Secret token相关配置。
3.
Jenkins部署到远程服务器
参考Jenkins部署到远程服务器
问题
用户名或密码不正确
admin账户明明已经修改过密码,但是登录失败。使用初始化密码:cat /var/lib/jenkins/secrets/initialAdminPassword
,登录成功。
ERROR: No such settings file /var/lib/jenkins/workspace/test/user-center/ /usr/local/maven/conf/settings.xml exists
新建的maven项目:
构建失败:
[ERROR] The specified user settings file does not exist: /var/lib/jenkins/workspace/test/user-center/ /usr/local/maven/conf/settings.xml
Please verify that your alternate settings file is specified properly and exists in the workspace.
全网搜索,终于找到解决方案:stackoverflow
配置出错在**build
**部分,点击高级,我当前build失败的配置的截图:
无论是Settings file
还是Global Settings file
,其选项都有三个,如上图,我使用的是第三个。根据上面StackOverflow的解释,应该把Settings file in filesystem
换成Use default maven settings
,即换成第一个。
前提:
重启后打不开页面
重启systemctl restart jenkins
后无法访问网站,再次systemctl restart jenkins
,即可。。。莫名其妙
构建业务应用时遇到release版本依赖包被更新(但是版本号不变)编辑失败的问题
编译报错信息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project arm-service: Compilation failure: Compilation failure:
[ERROR] /var/lib/jenkins/workspace/test/arm/arm-service/src/main/java/com/central/arm/client/icp/impl/ICPApiDomainService.java:[10,32] 找不到符号
[ERROR] 符号: 类 HttpClientUtil
[ERROR] 位置: 程序包 com.central.common.utils
其中,第10行是依赖的一个release版本的jar包common-core
;
如同,maven对于release版本的依赖包,不会更新;Jenkins也是一样的处理策略。
解决方法:
新建一个Jenkins构建工程common-core
,然后设置构建规则,一旦发现common-core
这个项目又代码提交,则触发自动构建,并替换Jenkins所在服务器中已有的release版本的common-core.jar
,这样别的业务工程在代码提交之后,触发构建就不会有编译失败的问题。
引出另一个问题:
[INFO] Installing /var/lib/jenkins/workspace/test/zlt-commons/zlt-common-core/target/zlt-common-core-4.1.0.jar to /var/lib/jenkins/.m2/repository/com/gdfi/zlt-common-core/4.1.0/zlt-common-core-4.1.0.jar
两个仓库问题;Jenkins并没有使用默认的maven仓库地址?
第三方依赖包也是,Jenkins空间占用冗余问题
[INFO] — maven-install-plugin:2.4:install (default-install) @ zlt-swagger2-spring-boot-starter —
[INFO] Installing /var/lib/jenkins/workspace/test/zlt-commons/zlt-swagger2-spring-boot-starter/target/zlt-swagger2-spring-boot-starter-4.1.0.jar to /var/lib/jenkins/workspace/test/zlt-commons/.repository/com/gdfi/zlt-swagger2-spring-boot-starter/4.1.0/zlt-swagger2-spring-boot-starter-4.1.0.jar
UnknownHostException: updates.jenkins.io
- 首先确保Jenkins所在的服务器,可以联网!
- updates.jenkins.io部署在国外,连接不稳,速度慢,重试几次!!
- 如果还是有问题,替换一下update server:
找到配置文件
locate userCenter.xml
替换``为如下地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/stable-2.7/update-center.json
HTTP ERROR 403 No valid crumb was included in the request
刷新浏览器,重试。
CentOS 8使用Yum安装Git
安装:yum install git
,验证:git --version
环境变量
Jenkins内置许多环境变量,包括但不限于:
- BUILD_NUMBER, 唯一标识一次build;
- BUILD_ID,基本上等同于BUILD_NUMBER,字符串形式,例如2011-11-15_16-06-21;
- JOB_NAME,Job的名字
- JOB_URL,Job的URL
- BUILD_TAG, 作用同BUILD_ID,BUILD_NUMBER,用来全局地唯一标识一此build,例如jenkins-JavaHelloWorld-23;
- EXECUTOR_NUMBER, 例如0;
- NODE_NAME,slave的名字,例如MyServer01;
- NODE_LABELS,slave的label,标识slave的用处,例如JavaHelloWorld MyServer01;
- JAVA_HOME
- WORKSPACE,job的当前工作目录
- HUDSON_URL/JENKINS_URL, Jenkins的url,一般默认http://localhost:8000/;
- BUILD_URL,如http://localhost:8000/job/JavaHelloWorld/23/;
- SVN_REVISION
参考
CentOS 8安装并配置Jenkins相关推荐
- CentOS FTP安装及配置
CentOS FTP安装及配置 LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftp ...
- [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)
本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...
- 在CentOS上安装和配置OpenNebula入门实例
导读 我们提到的云计算一般有三种类型:软件即服务(Software as a service, SaaS),平台即服务(Platform as a Service, PaaS)和基础架构即服务(Inf ...
- CentOS下安装及配置MySQL
大家好,我是中国码农摘星人. 欢迎分享/收藏/赞/在看! 欢迎提出使用本篇文章安装 MySQL 时遇到的问题,本篇文章会持续更新- MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公 ...
- CentOS下安装及配置Tomcat
大家好,我是中国码农摘星人. 欢迎分享/收藏/赞/在看! Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用, ...
- CentOS 7安装及配置(入门级)
CentOS 7安装及配置(入门级) 一.创建虚拟机 点击关闭-->完成,出现如下页面,点击开启虚拟机: 按上键,选择第一个,回车: 进入主界面,这里我没有选择中文,需要的自行选择,开发使用英文 ...
- 在CentOS上安装和配置Guacamole
一.环境说明 操作系统:CentOS 6.4 x86_64 主机IP:192.168.38.20 登录账户:root 二.安装编译和运行环境 1. 关闭防火墙 在Shell中运行以下命令: chkco ...
- CentOS SSH安装与配置
为什么80%的码农都做不了架构师?>>> SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH ...
- CentOS HarBor安装与配置
HarBor 安装与配置 Prerequisites for the target host Resource Capacity Description CPU minimal 2 CPU 4 CPU ...
最新文章
- java循环队列_java实现循环队列(顺序队列)
- ruby安装插件报错
- 假如我是面试官,我会这样虐你
- SRM6.1安装配置指南
- 聚焦可信AI与产业应用,百度联合发起千言计划实现情感分析2.0升级
- win7乱码 字符集解决方案
- Kafka实现MySQL增量同步
- 双屏怎么快速切换鼠标_在笔记本上实现双屏设计,怎么做到的?
- oracle常用用户权限,oracle创建新用户及授予常用权限
- 我的游测之路 | 揭秘游戏测试神秘面纱(一)
- mysql_real_connect阻塞_mysql_real_connect崩溃、未经处理的异常
- GlobalAuthenticationConfigurerAdapter.class 整合activiti 报错
- 【Flutter】Dart中的var、final 和 const基本使用
- 慕课软件质量保证与测试(第十章.课后作业)
- linux安装rz sz命令不能用,Linux下如何安装rz和sz命令
- UVALive 6437
- uni-app 极光推送
- WinForm实现倒计时锁定程序完整源码附注释
- GPGPU台积电7nm制程
- 中 华 百 家 姓 一 览