Jenkins

一、Jenkins与GitLab基础信息

  1. Jenkins :原名Hudson,2011年更名,是开源的持续集成软件工具,官方网站为https://www.jenkins.io/
  2. GitLab :官方网站为https://about.gitlab.com/

二、GitLab安装与使用

(一)安装最小配置
  • 内存至少4G;
  • 若通过Docker安装,系统内核至少3.10以上(可通过uname -r查看)。
(二)SSH下安装步骤
  1. 安装依赖

    bash 复制代码
    sudo yum install -y curl policycoreutils-python openssh-server perl
    sudo systemctl enable sshd
    sudo systemctl start sshd
  2. 配置镜像

    bash 复制代码
    curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
  3. 开始安装

    bash 复制代码
    sudo EXTERNAL_URL="http://192.168.44.103" yum install -y gitlab-jh
  4. 初始登录

    • 用户名:root;
    • 密码:随机生成,存储在/etc/gitlab/initial_root_password(24小时后自动删除,建议登录后立即修改)。
(三)常用命令
  • gitlab-ctl start:启动所有组件;
  • gitlab-ctl stop:停止所有组件;
  • gitlab-ctl restart:重启所有组件;
  • gitlab-ctl status:查看服务状态;
  • gitlab-ctl reconfigure:启动服务;
  • vi /etc/gitlab/gitlab.rb:修改配置文件;
  • gitlab-ctl tail:查看日志。
(四)Docker下安装步骤
  1. 安装Docker

    • 更新yum源:yum update
    • 安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2
    • 添加镜像(阿里镜像为例):yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • 查看可用版本:yum list docker-ce --showduplicates | sort -r
    • 安装指定版本:yum install docker
    • 配置开机启动:systemctl start dockersystemctl enable docker
    • 验证:docker version
  2. 使用容器安装GitLab

    bash 复制代码
    docker run --detach \
      --hostname 192.168.44.103 \
      --publish 443:443 --publish 80:80 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab:Z \
      --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
      --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
      --shm-size 256m \
      registry.gitlab.cn/omnibus/gitlab-jh:latest
  3. 容器操作

    • 启动:docker start gitlab
    • 查看容器:docker ps -a
    • 进入容器:docker exec -it gitlab /bin/bash
  4. 访问与问题排查

    • 访问地址:http://192.168.44.101
    • 首次502错误排查:虚拟机内存至少4G;等待片刻刷新。

三、Jenkins安装与配置

(一)安装需求
  • 机器要求:256MB内存(建议>512MB),10GB硬盘空间;
  • 需安装软件:Java 8(JRE或JDK)、Docker。
(二)JDK安装
  1. 检索可用包:yum search java|grep jdk
  2. 安装:yum install java-1.8.0-openjdk
(三)Jenkins启动与初始化
  • 首次启动:war包在/root/.jenkins生成配置文件;
  • 访问:服务器8080端口;
  • 初始密码:存储在/root/.jenkins/secrets/initialAdminPassword(使用后自动删除)。

四、Maven相关配置

(一)安装

官网https://maven.apache.org/下载后,复制到Jenkins所在服务器解压缩。

(二)阿里云镜像配置

修改/usr/local/maven/conf/settings.xml,在<mirrors>标签中添加:

xml 复制代码
<mirror>
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
  <id>nexus-public-snapshots</id>
  <mirrorOf>public-snapshots</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>

五、Jenkins + Git + Maven 自动化部署配置

(一)Git配置
  • 仓库URL:http://92.168.44.103/rootjava-projectgit
  • 分支:指定分支(如*/main)。
(二)Maven配置
  • 新增Maven:名称maven3,MAVEN_HOME设为/usr/local/maven/
(三)Pom.xml配置
  • Root POM:demo-1/pom.xml

六、Java Home配置(可选)

  1. 配置路径:

    bash 复制代码
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64 
    export JRE_HOME=$JAVA_HOME/jre 
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 
    export JAVA_HOME JRE_HOME CLASS_PATH PATH 
  2. 立即生效:source /etc/profile

  3. 报错解决:若找不到JDK,执行yum install -y java-devel(默认可能只安装JRE)。

七、Publish over SSH配置

  1. 安装插件:在Configure System菜单中配置。
  2. 添加目标服务器
    • 填写名称、主机名(如192.168.44.104)、端口(默认22)等;
  3. 文件传输与命令执行
    • 源文件:**/demo*.jar
    • 移除前缀:demo-1/target
    • 远程目录:/xxoo
    • 执行命令(示例):nohup java -jar /root/xxoo/demo*.jar >mylog.log 2>&1 &(避免窗口卡住)。

八、构建方式

1.** 快照依赖构建 :当依赖的快照被构建时执行。
2.
触发远程构建 :通过REST API调用执行(需配置身份验证令牌)。
3.
job依赖构建 :依赖的job被构建时执行。
4.
定时构建 **:基于Jenkins cron表达式(与标准cron不同):

  • 格式:分 时 日 月 周(取值范围分别为0-59、0-23、1-31、1-12、0-7,0和7为周日);
  • 特殊符号:/表示间隔(如*/10 * * * *每10分钟);H为哈希值,避免任务同时执行。
    5.** Git提交触发 :通过GitLab WebHook回调触发。
    6.
    定期检查代码变更 **:定时检查代码变更后构建。

九、自动化部署到Docker容器

(一)外挂目录
bash 复制代码
docker run -d -p 8080:8080 --name demo-out -v /root/jarfile/demo-1-0.0.1-SNAPSHOT.jar:/app.jar openjdk:11 java -jar app.jar
(二)打包到容器内

1.** Dockerfile示例 **:

dockerfile 复制代码
FROM openjdk:11 
EXPOSE 8080 
WORKDIR /root 
ADD jarfile/demo*.jar /root/app.jar 
ENTRYPOINT ["java","-jar","/root/app.jar"]

2.** 打包镜像 **:docker build -t demo .

(三)配置国内镜像
  • 修改/etc/docker/daemon.json

    json 复制代码
    { 
      "registry-mirrors": [ 
        "https://ustc-edu-cn.mirror.aliyuncs.com", 
        "http://hub-mirror.c.163.com", 
        "https://registry.aliyuncs.com" 
      ] 
    }
  • 重启服务:systemctl daemon-reloadsystemctl restart docker

十、Jenkins高级功能

(一)集群/并发构建

多机器并发执行构建,提升效率。

(二)流水线(Pipeline)

1.** 必备组成部分 pipeline(整条流水线)、agent(指定执行器)、stages(所有阶段)、stage(某一阶段)、steps(阶段内步骤)。
2.
基础框架示例 **:

groovy 复制代码
pipeline { 
  agent any 
  stages { 
    stage('拉取代码') { 
      steps { 
        echo '拉取代码完成' 
      }
    }
    stage('执行构建') { 
      steps { 
        echo '执行构建完成' 
      }
    }
  }
  post { 
    always { 
      echo "完成"
    }
    failure { 
      echo "失败" 
    }
  } 
}

3.** 关键配置 **:

  • agent:指定执行节点(如label "jenkins-02");
  • post:流水线完成后执行(如alwayssuccessfailure等状态)。
    4.** 类型对比 **:
  • 声明式:可读性高,支持语法检查,适合常规流程;
  • 脚本式:更灵活,可构建复杂工作流,对编程要求高。
(三)辅助工具

-** 阶段视图(Stage View):可视化阶段流程;
-
Blue Ocean **:全新UI,支持重复执行某阶段,需在插件中心安装。

十一、测试报告邮件通知

使用163邮箱时,密码需填认证码(非登录密码)。

相关推荐
七夜zippoe3 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy6484 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满4 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠4 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9035 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技6 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀6 小时前
Linux环境变量
linux·运维·服务器
zzzsde6 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º8 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~8 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化