CICD の jenkins 安装和基本使用

安装 jenkins 主从环境

docker-compose 搭建:

services:
  jenkins:
    image: jenkins/jenkins:lts-jdk17
    container_name: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - ./jenkins_home:/var/jenkins_home

  ubuntu-node:
    image: ubuntu:24.04
    # 若想以交互式方式运行,取消注释以下 command 行
    # command: bash
    # 若想以后台方式运行,使用以下 command 行
    command: sleep infinity
    stdin_open: true # 保持标准输入打开,用于交互式会话
    tty: true # 分配一个伪终端
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./ubuntu_jenkins_home:/var/jenkins_home

其中,8080 是web管理页面端口,5000是主从交互端口

jenkins_home 目录已映射到宿主机,访问 8080 端口,打开页面,并输入密码,初始密码在

cat jenkins_home/secrets/initialAdminPassword
  1. 输入密码,进入界面,选择推荐组件全部安装
  2. 跳过创建用户,直接使用 admin 账号登录

配置 worker 节点

jenkins 只负责发送构建命令,剩余均在工作节点完成,所以,要保证构建命令,都能手动跑通,已 go项目构建为例 需要在 =worker node 上安装如下服务

  1. go 环境
  2. make: 使用 makefile 文件来控制构建
  3. git: 拉代码和切换分支
  4. openssh-server: 主从通过 ssh 鉴权通信
  5. java 环境: 主从通信的服务是使用 java写的

在节点列表中,点击 new node 添加新节点

测试连接是否正常

如下,表示连接正常

权限配置

为方便角色管理,在插件管理中,下载 Role-based Authorization Strategy

安装完成,在安全配置中,选择 基于角色的授权策略

在设置页面,进入 Manage and Assign Roles 插件

创建用户

Dashboard 》Manage Jenkins》Jenkins’ own user database 中创建三个用户,用来实现常见的工作场景: 后端开发只能看到后端项目。前端开发只能看到前端项目。测试前后端都能看到,但只能编译,不能改构架逻辑

  1. dev01: 后端开发人员,密码 123456
  2. dev02: 前端开发人员,密码 123456
  3. test01: 测试人员,密码 123456

配置全局角色

依次进入 系统管理 >> Manage and Assign Roles >> Manage Roles

添加 item 权限

设置三种角色,使用正则匹配对应 item 项目,在后面框中,勾选每个角色各自的权限

创建 go 开头的文件夹,对应 go角色

如上方法,再创建一个 front开头的前端文件夹,对应 vue 角色

使用不同账号登录,只能看到自己的项目,符合预期

创建一个项目

推荐使用主流的流水线,创建项目

Pipeline 是使用 Groovy 语法写的,Groovy 是一种基于 javar 的弱类型语言,一般人没有必要懂,直接使用模板,生成一个就行了

简单的例子如下:

  • agent: 通过 lable 指定,要在 ubuntu-node 这个节点上构建(从节点)
  • stage("xxxx"): xxx 代表执行步骤,会顺序执行,xxx 的名字完全可以自定义
pipeline {
    agent { label 'ubuntu-node' } 
    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
        stage('pullcode') {
            steps {
                git 'https://gitee.com/rush_peng/go_test.git'
            }
        }
        stage('build') {
            steps {
                sh 'make build'
            }
        }
    }
}
posted @ 2025-03-29 01:04  沧海一声笑rush  阅读(35)  评论(0)    收藏  举报