Jenkins 环境部署与使用

前言

Jenkins 是什么,让我们先来了解一下,通过某百科介绍:Jenkins 是一款由 Java 编写的开源的持续集成工具。Jenkins 提供了软件开发的持续集成服务,它运行在Servlet容器中,它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant 和 Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。所以说在我们日常的项目开发中在提高工作效率的举措中扮演了重要的角色,举个例子譬如项目的编译以及打包,完全可以交由 Jenkins 的任务去完成,从而解放双手。

环境部署

  1. 打开网址 www.jenkins.io/download/ 下载Jenkins
  2. 选择 Long-term Support (LTS) 下载自己所要安装的平台版本
  3. 在 Mac 机上部署 Jenkins 请执行以下命令行:
  • Install the latest LTS version: brew install jenkins-lts
  • Install a specific LTS version: brew install jenkins-lts@YOUR_VERSION
  • Start the Jenkins service: brew services start jenkins-lts
  • Restart the Jenkins service: brew services restart jenkins-lts
  • Update the Jenkins version: brew upgrade jenkins-lts
  1. 启动 Jenkins 服务之后,在浏览器中输入 http://localhost:8080 ,按照引导完成安装

构建版本

安装完毕后,开始对项目进行配置

  1. 新增一个任务, 选择第一个 "构建一个自由风格的软件项目",并输入任务名称

  2. 针对项目所需进行基础配置

  3. 源码管理,添加 git 或者 svn 代码仓库权限,以便在构建的时候代码保持最新

  4. 构建,选择下拉列表中适合自己的选项,譬如说 "Execute shell",在里面加入脚本

  5. 保存后回到主界面,即可构建版本

布置节点打包机

以 MacOS 为例

1.在 Mac 上安装 JDK

2.开启节点机的 SSH 远程登陆

在 MacOS 的 系统偏好设置 中 找到 共享

把 远程登录 与 远程管理选项 勾选,设为所有用户可以访问。

在 Jenkins 主机上 执行如下命令

bash 复制代码
    ssh-keygen
    cd .ssh
    cat id_rsa.pub > authorized_keys
    chmod 700 authorized_keys

其中执行 cd .ssh 要看清楚 .ssh 所在的位置

下面是我执行的日志:

swift 复制代码
    jenkins@jenkins-jenkins:/$ ssh-keygen                                                                                                                                                                       
    Generating public/private rsa key pair.                                                                                                                                                                     
    Enter file in which to save the key (/var/jenkins_home/.ssh/id_rsa):                                                                                                                                        
    Created directory '/var/jenkins_home/.ssh'.                                                                                                                                                                 
    Enter passphrase (empty for no passphrase):                                                                                                                                                                 
    Enter same passphrase again:                                                                                                                                                                                
    Your identification has been saved in /var/jenkins_home/.ssh/id_rsa.                                                                                                                                        
    Your public key has been saved in /var/jenkins_home/.ssh/id_rsa.pub.                                                                                                                                        
    The key fingerprint is:                                                                                                                                                                                     
    SHA256:WJS8qywh1rmx6zyEPJtYIGGt9zyoBd1n6IMUHXi+Fu8 jenkins@jenkins-jenkins                                                                                                                                  
    The key's randomart image is:                                                                                                                                                                               
    +---[RSA 2048]----+                                                                                                                                                                                         
    |  . o.....       |                                                                                                                                                                                         
    |.. + o .o        |                                                                                                                                                                                         
    |  B+*O ..        |                                                                                                                                                                                         
    |..o.= oE         |                                                                                                                                                                                         
    |   .++           |                                                                                                                                                                                         
    +----[SHA256]-----+                                                                                                                                                                                         
    jenkins@jenkins-jenkins:/$ cd .ssh                                                                                                                                                                          
    bash: cd: .ssh: No such file or directory                                                                                                                                                                   
    jenkins@jenkins-jenkins:/$                                                                                                                                                                                  
    jenkins@jenkins-jenkins:/$ cat id_rsa.pub > authorized_keys                                                                                                                                                 
    bash: authorized_keys: Permission denied                                                                                                                                                                    
    jenkins@jenkins-jenkins:/$                                                                                                                                                                                  
    jenkins@jenkins-jenkins:/$ chmod 700 authorized_keys^C                                                                                                                                                      
    jenkins@jenkins-jenkins:/$ cd /var/jenkins_home/.ssh                                                                                                                                                        
    jenkins@jenkins-jenkins:~/.ssh$ cat id_rsa.pub > authorized_keys                                                                                                                                            
    jenkins@jenkins-jenkins:~/.ssh$                                                                                                                                                                             
    jenkins@jenkins-jenkins:~/.ssh$ chmod 700 authorized_keys     
  1. 在master上配置登录节点机的用户名和密码

  2. 在 Jenkins 上添加节点

输入节点名称选择 Permanent Agent 并确定:

下图为节点配置信息:

  • 名称,描述按实际填写即可。
  • 执行器数量:表示构建并发数,具体视 Slave 的硬件配置决定。
  • 远程工作目录:节点机的 workspace。
  • 标签:可用于在 Job 中通过该 Label 来指定运行在哪个节点上。
  • 启动方式:选择 Launch agent agents via SSH。主机:节点机的IP, Credentials:选择刚刚创建的 Credential。
  • 节点属性:如果需要配置该节点机的环境变量,可以在这里配置。
  1. 启动节点

保存完毕后,点击 Launch agent,会生成一个 salve-agent.jnlp 文件,在节点机上双击运行。

这样我们就可以通过配置构建任务,来执行某一台节点机上的编译打包任务

注意: Windows 节点机默认会在你的工作路径下面配置 workspace 工作目录,如果想自定义路径,请参考一下设置:

  1. 打开你的构建任务的配置页面
  2. 在 General 面板下,点击高级按钮选项
  3. 勾选使用自定义的工作空间,并填入路径

权限分配

分配账号权限需要有管理员权限的账户进行操作

  1. 在 Manage Jenkins 下选择 Manage Users

  2. 新建用户

  3. 安装插件 Role-Based Strategy

  4. 选择授权策略为 Role-Based Strategy

  5. 打开 Manage and Assign Roles, 选择 Manage Roles,添加 Role

  1. 选择Assign Roles为用户指派角色
  1. 重启 Jenkins, 登录,即可见到配置指派的项目

常见问题

配置其他机器访问主机:

1.打开路径

bash 复制代码
~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

2.修改

c 复制代码
<string>--httpListenAddress=0.0.0.0</string>

3.执行命令行

javascript 复制代码
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

Jenkins 安装目录以及相关配置所在路径地址

bash 复制代码
/Users/user/.jenkins

最后

关于 Jenkins 部署的操作到这边就结束了,希望这篇教程能够帮助你提高开发效率,助你一臂之力。

我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦!

相关推荐
猛男敲代码25 分钟前
SSE与WebSocket与MQTT
前端·javascript·websocket
yqcoder1 小时前
react 中 FC 模块作用
前端·react.js·前端框架
我不当帕鲁谁当帕鲁1 小时前
arcgis for js实现popupTemplate弹窗field名称和值转义
前端·javascript·arcgis
一路向阳~负责的男人1 小时前
前端单元测试框架 引入说明
前端·单元测试
刘志辉2 小时前
react的创建与书写
前端·react.js·前端框架
我是苏苏2 小时前
Web开发:ABP框架6——appsetting.json的读取以及实例的注入
前端·windows·json
秋雨凉人心2 小时前
uniapp 设置安全区域
前端·javascript·vue.js·uni-app
柳问星2 小时前
parallel-wait-run, 一个并行运行多个 npm scripts 的小工具
前端·javascript·npm
One_Blanks2 小时前
网络安全-HTML基础
前端·安全·html
Cyrus丶2 小时前
前端组件化开发指南(二)
前端·代码规范