概述

持续集成必备工具。

安装

启用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/profileJAVA_HOME指向自带的OpenJDK路径,echo $JAVA_HOMEjava -versionmvn -v(maven配置依赖于JDK),一切正常。

直到今天碰到上面截图这个问题:Jenkins居然不能识别这个JDK路径。

原因参考:stackoverflow

解决方法:卸载,然后重新配置。

GitLab提交代码触发Jenkins构建

Jenkins需要安装GitLab和GitLab Hook插件。
参考向 GitLab 提交代码之后自动触发 Jenkins 构建,可能是全网第一吧,版本较新,图文清晰。
注意事项:

  1. 涉及到两个token:

    1. gitlab的access token,在gitlab服务器生成,用于Jenkins配置页面
    2. Jenkins的secret token,Jenkins生成,用于gitlab;注意在添加gitlab工程时,build trigger这里一定要点击advanced,Jenkins默认没有展开advanced,让我误以为不需要配置。点击advanced之后,点击generate生成secret token,然后粘帖到gitlab页面
  2. gitlab配置webhooks时,填写的URL是Jenkins生成的URL,不要乱写
  3. 提示webhook无法保存:Url is blocked: Requests to the local network are not allowed

报错

  1. 在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。
  2. 报错(已剔除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

  1. 首先确保Jenkins所在的服务器,可以联网!
  2. updates.jenkins.io部署在国外,连接不稳,速度慢,重试几次!!
  3. 如果还是有问题,替换一下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相关推荐

  1. CentOS FTP安装及配置

    CentOS  FTP安装及配置 LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftp ...

  2. [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)

    本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...

  3. 在CentOS上安装和配置OpenNebula入门实例

    导读 我们提到的云计算一般有三种类型:软件即服务(Software as a service, SaaS),平台即服务(Platform as a Service, PaaS)和基础架构即服务(Inf ...

  4. CentOS下安装及配置MySQL

    大家好,我是中国码农摘星人. 欢迎分享/收藏/赞/在看! 欢迎提出使用本篇文章安装 MySQL 时遇到的问题,本篇文章会持续更新- MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公 ...

  5. CentOS下安装及配置Tomcat

    大家好,我是中国码农摘星人. 欢迎分享/收藏/赞/在看! Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用, ...

  6. CentOS 7安装及配置(入门级)

    CentOS 7安装及配置(入门级) 一.创建虚拟机 点击关闭-->完成,出现如下页面,点击开启虚拟机: 按上键,选择第一个,回车: 进入主界面,这里我没有选择中文,需要的自行选择,开发使用英文 ...

  7. 在CentOS上安装和配置Guacamole

    一.环境说明 操作系统:CentOS 6.4 x86_64 主机IP:192.168.38.20 登录账户:root 二.安装编译和运行环境 1. 关闭防火墙 在Shell中运行以下命令: chkco ...

  8. CentOS SSH安装与配置

    为什么80%的码农都做不了架构师?>>>    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH ...

  9. CentOS HarBor安装与配置

    HarBor 安装与配置 Prerequisites for the target host Resource Capacity Description CPU minimal 2 CPU 4 CPU ...

最新文章

  1. java循环队列_java实现循环队列(顺序队列)
  2. ruby安装插件报错
  3. 假如我是面试官,我会这样虐你
  4. SRM6.1安装配置指南
  5. 聚焦可信AI与产业应用,百度联合发起千言计划实现情感分析2.0升级
  6. win7乱码 字符集解决方案
  7. Kafka实现MySQL增量同步
  8. 双屏怎么快速切换鼠标_在笔记本上实现双屏设计,怎么做到的?
  9. oracle常用用户权限,oracle创建新用户及授予常用权限
  10. 我的游测之路 | 揭秘游戏测试神秘面纱(一)
  11. mysql_real_connect阻塞_mysql_real_connect崩溃、未经处理的异常
  12. GlobalAuthenticationConfigurerAdapter.class 整合activiti 报错
  13. 【Flutter】Dart中的var、final 和 const基本使用
  14. 慕课软件质量保证与测试(第十章.课后作业)
  15. linux安装rz sz命令不能用,Linux下如何安装rz和sz命令
  16. UVALive 6437
  17. uni-app 极光推送
  18. WinForm实现倒计时锁定程序完整源码附注释
  19. GPGPU台积电7nm制程
  20. 中 华 百 家 姓 一 览

热门文章

  1. 独立产品灵感周刊 DecoHack #027 - 今天的天气适合穿短裤
  2. 2022债市波动分析
  3. 三个路由器配置动态路由
  4. 使用小程序做交互的技巧(演讲内容实录)丨掘金开发者大会
  5. 【超详细~】手把手带你推导傅里叶级数~
  6. 低频工业读写器|读卡器|阅读器CK-LR03-A01与FX1N三菱PLC联机应用手册
  7. 为什么实际开发中不使用外键
  8. pytorch 获取网络结构打印网络结构
  9. 测试TensorFlow 是否安装成功
  10. Domain generalization