Jenkins
跳到导航
跳到搜索
Jenkins 是一个开源的、可扩展的自动化服务器,广泛用于持续集成和持续交付的流水线中。
概述
Jenkins 可以对版本控制系统中的代码实现自动化构建、测试和部署。
- 编译代码:将代码编译成可执行文件或其他形式的交付物
- 运行测试:执行单元测试、集成测试等
- 打包部署:将构建好的软件打包成安装包,并完成部署
通过自动化执行重复性的任务,提高开发效率,减少人为错误,加速软件交付。
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 是一种用于实现持续交付的工具插件,它提供了一种灵活的方式来定义和执行一系列的步骤,从构建、测试到部署。
- Agent: 指定 Pipeline 或 stage 运行的节点
- Stage: 流水线被划分为多个阶段,每个阶段代表一个特定的构建步骤,如构建、测试、部署等(可嵌套)
- Step : 每个 stage 由多个 step 组成,step 是最小的执行单元,如运行 shell 脚本(OS Shell)、执行 script 脚本(Jenkins script)等