CentOS搭建:Jenkins
目录
参考:
- linux安装Jenkins (opens new window)
- Centos7下安装Jenkins (opens new window)
- centos7中jenkins的安装与配置(超详细) (opens new window)
- Jenkins平台配置 java 环境 (opens new window)
- 修改Jenkins的默认工作路径,最简单高效的方式,适用于正式环境 (opens new window)
- 为Jenkins设置Nginx反向代理 (opens new window)
- 【Jenkins的部署与配置】 (opens new window)
- Jenkins版本升级 (opens new window)
# CentOS搭建:Jenkins
# 概要说明
Jenkins中文官网 (opens new window)
# 常用命令
# 环境依赖
软件/系统 | 版本 | 架构 | 包名 | 安装方式 | 备注 |
---|---|---|---|---|---|
Linux | CentOS-7.X | x86_64 | |||
jenkins | 2.346.3-1.1 | jenkins-2.346.3-1.1.noarch.rpm (opens new window) | 离线程序安装 | 官网下载 (opens new window) | |
java | 1.8.0_411 |
CentOS中软件安装的常用方式:
在线源安装(yum)
离线程序安装(rpm)
二进制包安装(无需编译)
源码二进制包安装(无需编译)
源码包编译安装 (要编译)
# 安装搭建
# 包下载
Jenkins 项目产生两个发行线, 长期支持版本 (LTS) 和每周更新版本。Jenkins发行版本说明 (opens new window)
下载支持依赖java8的Jenkins稳定发行版本
wget https://mirrors.jenkins.io/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm
# 环境检查
已安装检查
# 查找已安装 rpm -qa | grep jenkins
1
2# 卸载已安装 sudo rpm -e --nodeps xxx
1
2- 普通卸载模式:
rpm -e xxx
,如果提示有依赖其他文件,则可以用强力卸载。 - 强力卸载模式:
rpm -e --nodeps xxx
- 普通卸载模式:
jdk环境:Jenkins是java开发的,所以需要依赖jdk环境。Jenkins版本及依赖的java版本查询 (opens new window)
# 验证jdk环境 java -version
1
2
# 安装依赖
java8:CentOS搭建:JDK
# 创建目录
sudo mkdir -p /soft/jenkins
# 移动安装包到目录
sudo mv jenkins-2.346.3-1.1.noarch.rpm /soft/jenkins
2
# 进行安装
cd /soft/jenkins
sudo rpm -ivh jenkins-2.346.3-1.1.noarch.rpm
-i
:表示安装(install)RPM 包。-v
:表示详细模式(verbose),在安装过程中会显示更多的信息。-h
:表示在安装过程中显示安装进度条(hash marks),提供一个可视化的安装进度反馈。
安装后的默认文件路径说明:
路径 | 描述 | 用途或内容 |
---|---|---|
/usr/lib/systemd/system/jenkins.service | Jenkins的系统服务文件 | 用于定义Jenkins服务如何启动、停止和管理 |
/usr/lib/firewalld/services/jenkins.xml | Jenkins的Firewalld服务配置文件 | 定义Jenkins服务所需的防火墙规则 |
/usr/share/java/jenkins.war | Jenkins的Web应用程序归档文件 | Jenkins的核心应用程序,可部署到Java Servlet容器中 |
/etc/sysconfig/jenkins | Jenkins的系统配置文件 | 包含Jenkins服务运行时需要的配置参数 |
/etc/rc.d/init.d/jenkins | Jenkins的init脚本 | 用于在旧式Linux系统上启动、停止和重启Jenkins服务 |
/etc/logrotate.d/jenkins | Jenkins的日志轮转配置文件 | 定义Jenkins日志文件的轮转策略,如大小、保留时间等 |
/var/lib/jenkins | Jenkins的数据目录 | 存储Jenkins作业、插件、配置等持久化数据 |
/var/log/jenkins | Jenkins的日志目录 | 存储Jenkins运行时的日志文件 |
/var/cache/jenkins | Jenkins的缓存目录 | 存储Jenkins用于提高性能的临时数据 |
/usr/bin/jenkins | Jenkins的可执行文件(可能是链接) | 指向Jenkins的实际可执行文件或脚本,用于从命令行启动Jenkins |
/usr/share/jenkins | Jenkins的共享目录 | 存放Jenkins的公共文件,如文档、示例等 |
/usr/sbin/rcjenkins | Jenkins的启动/停止脚本(可能是特定于发行版的) | 用于启动或停止Jenkins服务的脚本,可能依赖于特定的Linux发行版 |
# 修改配置
/etc/sysconfig/jenkins
sudo vi /etc/sysconfig/jenkins
1# 端口号 JENKINS_PORT="8080" # 启动参数 #JENKINS_ARGS="--prefix=/jenkins" #路由相对路径
1
2
3
4链接java
# 查找java which java
1
2# 将java链接到/usr/bin/java ln -s /usr/local/java/jdk1.8.0_191/bin/java /usr/bin/java
1
2/usr/local/java/jdk1.8.0_191/bin/java
为which java
的结果,即java路径
# 启停操作
# 状态
sudo systemctl status jenkins
# 启动
sudo systemctl start jenkins
# 停止
sudo systemctl start jenkins
# 开机自启动
sudo systemctl enable jenkins
2
3
4
5
6
7
8
# 防火墙放行
# 开放指定端口
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
2
--zone
作用域--add-port=8080/tcp
添加端口,格式为:端口/通讯协议--permanent
永久生效,没有此参数重启后失效
# 开启防火墙
systemctl start firewalld
# 停止防火墙
systemctl stop firewalld
# 停用开机自启动
systemctl disable firewalld
2
3
4
5
6
# 访问配置及验证
访问地址:http://ip:port(端口默认8080)
管理员
账号:jenkins(默认)
密码:
# 获取密码 sudo cat /var/lib/jenkins/secrets/initialAdminPassword
1
2- 例如:b767ff5cf9424238aa1b4a035ad0078b
# 开机自启动设置
# 开机自启动
sudo systemctl enable jenkins
# 停用开机自启动
sudo systemctl enable jenkins
2
3
4
# 修改默认工作路径
Jenkins的默认工作路径:/var/lib/jenkins,路径默认属主是用户jenkins
停止
sudo systemctl stop jenkins
1复制默认工作目录并进行软连接挂载
# 创建数据目录 sudo mkdir -p /data/jenkins/{data,bak} #备份一份默认目录文件 sudo scp -r /var/lib/jenkins /data/jenkins/bak/jenkins_bak20241115 #移动默认工作目录到目的目录中 sudo mv /var/lib/jenkins /data/jenkins/data #设置软链接 sudo ln -s /data/jenkins/data/jenkins /var/lib/jenkins
1
2
3
4
5
6
7
8更改数据目录属主
sudo chown -R jenkins:jenkins /data/jenkins sudo chown -R jenkins:jenkins /var/lib/jenkins
1
2重新启动
sudo systemctl restart jenkins
1
# Jenkins升级
Jenkins版本升级 (opens new window)
# Jenkins问题总结
问题:访问jenkins,报错:AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://www.jenkins.io/redirect/troubleshooting/java.awt.headless
解决:
yum install fontconfig
,参考 (opens new window)