Post

Jenkins使用记录

什么是 Jenkins

jenkins是用java实现的自动化构建工具. 他可以单机部署, 也可以分布式部署. 使用过Github Pages的同学应该知道Github Action, 当我们创建一个新的提交后, Action会自动执行, 根据仓库中的 pipeline 文件, 执行自动打包和发布. jenkins也是类似的工具.

工作流程

Jenkins 可以配置触发规则, 通常来说, 是根据版本管理仓库的提交来触发. Jenkins提供了一个http接口, 可以作为自动化流程的触发器. 而诸如 Svn 和 Git, 都支持 Hooks. 因此只要在 Git 远程仓库添加 post_receive 脚本, 在脚本中使用 curl 访问这个接口, 就可以触发自动化流程.

Jenkins 部署

jenkins 是支持分布式的, 我这里测试环境就是用docker了. 在 docker 中 Pull 并运行一个 Jenkins 容器, 这就是一个 MasterNode. 或者称之为 “控制器”. 这个 主节点 也是可以执行自动化流程的, 但是并不推荐这样做. 在 docker 中再创建一个 Ubuntu 环境, 安装好 ssh 等工具, 然后根据实际情况配置构建环境, 比如你可以安装 node 把这个节点作为打包前端工程的专用节点, 也可以安装 jdk dotnet 等作为后端工程的专用节点. 当然你也可以 “all in one”. 然后, 就是在 主节点 中添加这个新的 Node, 可以使用 账号密码, 也可以配置 ssh key.

jenkins 节点 jenkins 节点有两种, 一种是 master node 就是主节点, 另一种是 agent node 也称代理节点, 这里的就是用来表述分布式结构的一些名称. 当采用分布式结构部署jenkins, 那么主节点就充当控制器角色了. 权限配置 不管是 all in one 还是分布式, 一定要为 jenkins 配置专用的 linux 用户和工作目录. jenkins 是要运行 bash 脚本来实现自动化的, 因此有些命令可能出现权限不足. 这个时候很多教程要你给与 jenkins 管理员权限, 但最好不要这样做. 可以配置 nosudo 规则来实现.

如何使用

Jenkins 有很多插件可以使用, jenkins 流水线也可以实现类似 github action 的脚本功能, 通过在工程根目录添加 pipeline 脚本, 来控制 jenkins 的行为. 这样就省去了使用 jenkins webUI 来手动配置的繁琐过程.

This post is licensed under CC BY 4.0 by the author.