前言
Jenkins 是什么,让我们先来了解一下,通过某百科介绍:Jenkins 是一款由 Java 编写的开源的持续集成工具。Jenkins 提供了软件开发的持续集成服务,它运行在Servlet容器中,它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant 和 Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。所以说在我们日常的项目开发中在提高工作效率的举措中扮演了重要的角色,举个例子譬如项目的编译以及打包,完全可以交由 Jenkins 的任务去完成,从而解放双手。
环境部署
- 打开网址 www.jenkins.io/download/ 下载Jenkins
- 选择 Long-term Support (LTS) 下载自己所要安装的平台版本
- 在 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
- 启动 Jenkins 服务之后,在浏览器中输入 http://localhost:8080 ,按照引导完成安装
构建版本
安装完毕后,开始对项目进行配置
-
新增一个任务, 选择第一个 "构建一个自由风格的软件项目",并输入任务名称
-
针对项目所需进行基础配置
-
源码管理,添加 git 或者 svn 代码仓库权限,以便在构建的时候代码保持最新
-
构建,选择下拉列表中适合自己的选项,譬如说 "Execute shell",在里面加入脚本
-
保存后回到主界面,即可构建版本
布置节点打包机
以 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
-
在master上配置登录节点机的用户名和密码
-
在 Jenkins 上添加节点
输入节点名称选择 Permanent Agent 并确定:
下图为节点配置信息:
- 名称,描述按实际填写即可。
- 执行器数量:表示构建并发数,具体视 Slave 的硬件配置决定。
- 远程工作目录:节点机的 workspace。
- 标签:可用于在 Job 中通过该 Label 来指定运行在哪个节点上。
- 启动方式:选择 Launch agent agents via SSH。主机:节点机的IP, Credentials:选择刚刚创建的 Credential。
- 节点属性:如果需要配置该节点机的环境变量,可以在这里配置。
- 启动节点
保存完毕后,点击 Launch agent,会生成一个 salve-agent.jnlp 文件,在节点机上双击运行。
这样我们就可以通过配置构建任务,来执行某一台节点机上的编译打包任务
注意: Windows 节点机默认会在你的工作路径下面配置 workspace 工作目录,如果想自定义路径,请参考一下设置:
- 打开你的构建任务的配置页面
- 在 General 面板下,点击高级按钮选项
- 勾选使用自定义的工作空间,并填入路径
权限分配
分配账号权限需要有管理员权限的账户进行操作
-
在 Manage Jenkins 下选择 Manage Users
-
新建用户
-
安装插件 Role-Based Strategy
-
选择授权策略为 Role-Based Strategy
-
打开 Manage and Assign Roles, 选择 Manage Roles,添加 Role
- 选择Assign Roles为用户指派角色
- 重启 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 部署的操作到这边就结束了,希望这篇教程能够帮助你提高开发效率,助你一臂之力。
我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦!