Jenkins

来自牛奶河Wiki
阿奔讨论 | 贡献2024年12月2日 (一) 15:08的版本 →‎Inst
跳到导航 跳到搜索

Jenkins 是一个开源的、可扩展的自动化服务器,广泛用于持续集成和持续交付的流水线中。

概述

Jenkins 可以对版本控制系统中的代码实现自动化构建、测试和部署。

  1. 编译代码:将代码编译成可执行文件或其他形式的交付物
  2. 运行测试:执行单元测试、集成测试等
  3. 打包部署:将构建好的软件打包成安装包,并完成部署

通过自动化执行重复性的任务,提高开发效率,减少人为错误,加速软件交付。

Inst

1. 系统要求

  • 256 MB RAM
  • 1GB Space
  • Java 8 以上

2. Linux Debian

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
apt update
apt install jenkins
# 将创建一个 jenkins 用户来运行此服务
  • Daemon: /etc/init.d/jenkins
  • Config: /etc/default/jenkins
  • Log  : /var/log/jenkins/jenkins.log
  • Passwd: /var/lib/jenkins/secrets/initialAdminPassword (admin)
http://Jenkins_host:8080/

Manage

节点

Jenkins 运行的主机为 master 节点(名字一般不可修改)。

Dashboard -> Manage Jenkins -> [System Configuration]Nodes (Ver: 2.479.1)

  • Permanent Agent: 常驻代理节点,可以一直保持连接状态的节点,用来执行 CI/CD 任务,在 pipeline/state 中用 agent 指定。
  • Dumb Slave: 每次构建任务开始时启动,任务结束后关闭
  • Docker Slave: 基于 Docker 容器的节点,可以快速创建和销毁不同环境的节点
  • Kubernetes Slave: 基于 Kubernetes 的节点,可以利用 k8s 的强大功能进行节点管理

Pipeline

Jenkins Pipeline 是一种用于实现持续交付的工具插件,它提供了一种灵活的方式来定义和执行一系列的步骤,从构建、测试到部署。

  1. Agent: 指定 Pipeline 或 stage 运行的节点
  2. Stage: 流水线被划分为多个阶段,每个阶段代表一个特定的构建步骤,如构建、测试、部署等(可嵌套)
  3. Step : 每个 stage 由多个 step 组成,step 是最小的执行单元,如运行 shell 脚本(OS Shell)、执行 script 脚本(Jenkins script)等

Sample