Jenkins是一个开源软件的项目,是基于JAVA开发的一种持续集成工具,用于监控持续重复的工作,皆在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins的特点
持续集成和持续交付能力
作为一个可扩展的自动化服务器,Jenkins可以作为一个简单的持续集成(Continues Integration ,CI)服务器,或者成为任何项目的持续交付中心。
安装方便
Jenkins是一个基于Java的独立程序,包含Window、Mac OS和其他类UNIX系统的程序包。
简单的配置
Jenkins可以通过其Web界面轻松地设置和配置,其中包括动态错误检查和内置帮助。
丰富的插件
在Jenkins插件中心有数百个插件,Jenkins在持续集成和持续交付工具链中集成了几乎所有的工具。
可扩展
Jenkins可以通过插件架构进行扩展,这为Jenkins提供了几乎无限的可能性。
分布式
Jenkins可以轻松地在多台机器上发布工作,帮助用户在多个平台上更快地驱动构建、测试和部署。
接下来跟大家分享一下linux下安装jenkins的步骤
本次安装为linux环境下的ubuntu系统, 仅在安装java JDK时有语法不同, 其余安装指令在linux下通用
安装java环境
如果没有java环境, 先安装java环境(必须要安装11,17,21版本)
apt install openjdk-11-jre-headless
创建部署目录
mkdir /home/jenkins
cd /home/jenkins
下载jenkins压缩包
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war
新建jenkins日志目录
mkdir logs
编写启动脚本
vim jenkins.sh
脚本内容如下
#!/bin/bash
export JENKINS_HOME=/home/jenkins
cd $JENKINS_HOME
nohup java -Dhudson.model.DownloadService.noSignatureCheck=true -Xmx2g -jar jenkins.war --httpPort=8080 > logs/jenkins.log 2>&1 &
tail -f logs/jenkins.log
JENKINS_HOME==/home/jenkins 表示jenkins包的目录
httpPort=8080 表示jenkins启动后占用8080端口, 可以根据自己需求修改
tail -f logs/jenkins.log 表示jenkins日志输出目录
创建配置文件
vim hudson.model.UpdateCenter.xml
文件内容如下
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins-zh.cn/update-center.json</url>
</site>
运行启动脚本
先给启动脚本权限后运行
chmod 777 jenkins.sh
sh jenkins.sh
启动后密码保存在这个目录下/home/jenkins/secrets/initialAdminPassword
此时jenkins还不是后台进行运行; ctrl+c
暂时取消运行后执行命令, 利用nohup然jenkins启动脚本在后台运行
nohup sh jenkins.sh &
jobs可查看nohup 后台运行的脚本;
tail -f nohup.out 可查看nphup 运行日志
查看jenkins图形化界面
浏览器输入本机ip:8080,即可看到如下画面, 初始密码保存在/home/jenkins/secrets/initialAdminPassword
- 选择默认推荐的插件
等待安装即可
创建管理员账户和配置Jekkins URL
至此, jenkins已完成初步部署
nginx解析
此时通过ip+端口号即可访问jenkin管理后台, 如果需要域名访问则添加nginx解析即可, 以ubuntu为例, nginx的解析配置可参考
server {
listen 80;
client_max_body_size 3000m;
server_name jenkins.yourDomain.com;
access_log /var/log/nginx/jenkins/access.log;
error_log /var/log/nginx/jenkins/error.log;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
#静态资源
location ~ /\.ht {
deny all;
}
}
Jenkins插件
SSH工具: Publish over SSH
码云代码工具: Gitee
权限管理: Role-based Authorization Strategy
参数多选配置: Extended Choice Parameter
插件选择及安装方法: Dashboard > 系统管理 > 插件管理 > Available plugins