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邮箱时,密码需填认证码(非登录密码)。

相关推荐
cxyll12341 小时前
postman+newman+jenkins接口自动化
自动化·jenkins·postman
MUY09902 小时前
应用控制技术、内容审计技术、AAA服务器技术
运维·服务器
楠奕2 小时前
elasticsearch8.12.0安装分词
运维·jenkins
测试老哥2 小时前
pytest+requests+allure自动化测试接入Jenkins学习
自动化测试·软件测试·学习·测试工具·职场和发展·jenkins·pytest
Sadsvit2 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
中国lanwp2 小时前
Jenkins Pipeline中参数化构建
java·jenkins
苦学编程的谢3 小时前
Linux
linux·运维·服务器
G_H_S_3_3 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本
拾心214 小时前
【运维进阶】Linux 正则表达式
linux·运维·正则表达式