持续集成交付CI及CD之Jenkins的部署

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下通用
  1. 安装java环境

如果没有java环境, 先安装java环境(必须要安装11,17,21版本)
apt install openjdk-11-jre-headless
  1. 创建部署目录

mkdir /home/jenkins
cd /home/jenkins
  1. 下载jenkins压缩包

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war

  1. 新建jenkins日志目录

mkdir logs

  1. 编写启动脚本

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日志输出目录
  1. 创建配置文件

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> 
  1. 运行启动脚本

先给启动脚本权限后运行

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 运行日志
  1. 查看jenkins图形化界面

浏览器输入本机ip:8080,即可看到如下画面, 初始密码保存在/home/jenkins/secrets/initialAdminPassword
2023-09-06T13:39:54.png

  1. 选择默认推荐的插件
    2023-09-06T13:41:04.png

等待安装即可
2023-09-06T13:41:30.png

  1. 创建管理员账户和配置Jekkins URL

2023-09-06T13:48:07.png

至此, jenkins已完成初步部署
2023-09-06T13:49:36.png
2023-09-06T13:50:17.png

  1. 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;
        }
}
  1. Jenkins插件

SSH工具: Publish over SSH
码云代码工具: Gitee
权限管理: Role-based Authorization Strategy
参数多选配置: Extended Choice Parameter
插件选择及安装方法: Dashboard > 系统管理 > 插件管理 > Available plugins
2023-09-07T02:06:12.png
添加新评论