jenkins部署及构建方式

jenkins是基于java开发的一种持续集成工具,它的工作完全就是依靠插件,也就是说你想使用什么功能,你就找到什么样的插件。在工作中部署jenkins的最大好处就是每次在开发、测试代码,都无须运维部署,而是相关的开发人员,测试人员登录jenkins传入需要部署的tag即可,整个部署过程无须运维参与,从而解放运维劳动力。

jenkins安装

环境准备


1. Centos 7.1 已关闭 iptables、selinux
2. Java JDK 1.8
3. gitlab部署,推荐文章: 搭建内网gitlab仓库

安装jenkins


官网: https://www.jenkins.io

1
2
3
4
5
cd /etc/yum.repos.d/
wget http://pkg.jenkins.io/redhat/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
yum install -y jenkins
systemctl start jenkins


配置jenkins


在浏览器打开输入 http://IP:8080/ 即可访问jenkins

首次访问,需要解锁jenkins,把/var/lib/jenkins/secrets/initialAdminPassword文件内容复制到administrator password下方即可。


点击第一个安装一些默认插件即可,安装时间可能比较久,耐心等待一下即可

默认插件安装完成之后,配置下用户密码邮箱即可


插件安装


点击 【系统管理】 –> 【管理插件】 安装一些必要插件

这里说明一下我安装的一些插件:

ssh 插件: SSH plugin
Android 专用:Gradle plugin (默认已经安装)
Git 插件:Git plugin、Git client plugin
Gitlab 插件:GitLab Plugin 和 Gitlab Hook Plugin、GitLab Logo Plugin
sonar 插件:SonarQube Plugin、Sonargraph Integration Jenkins Plugin、Sonargraph Plugin
Parameter 插件: Git Parameter Plug-In(用于给git传参,可选择具体部署哪一个分支)
Maven 插件: Maven Integration plugin(用于maven构建项目)


手动下载jenkins插件


大家都知道,因为天朝网络原因,可能有很多插件我们安装不上,这个时候就需要我们手动下载,然后上传插件了。

插件地址: http://updates.jenkins-ci.org/download/plugins/
点击 【系统管理】 –> 【管理插件】 –> 【高级】


jenkins邮箱配置


点击 【系统管理】 –> 【系统配置】–> 【Jenkins Location】

之后再在下面找到 【邮件通知】配置下即可


密钥配置


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
df:2e:3c:f3:3f:7d:ff:f8:5f:26:46:82:42:fb:a5:34 root@zhmysql1
The key's randomart image is:
+--[ RSA 4096]----+
| |
| |
| . |
| . . . |
| S E o . |
| = = o |
| .+ . o.o|
| =. ..++|
| =o.ooX|
+-----------------+




在浏览打开之前部署的gitlab,将服务器的公钥配置下


环境配置

点击 【系统管理】 –> 【Global Tool Configuration】

jenkins构建


就目前所知道的,jenkins有3种构建方式:

  1. jenkins参数化构建:用于测试环境预上线环境部署,开发push代码或者合并代码到gitlab项目的master分支之后,并不会部署代码,而是需要登录到jenkins的web界面,点击构建按钮,传入对应的参数(比如参数需要构建的tag,需要部署的分支)然后才会部署。
  2. jenkins触发式构建:用于开发环境部署,开发人员push代码或者合并代码到gitlab项目的master分支,jenkins就部署代码到对应服务器。
  3. jenkins定时构建:用于APP自动打包,定时构建是在参数化构建的基础上添加的,开发人员可以登录jenkins手动传入tag进行打包,如果不手动打包,那么jenkins就每天凌晨从gitlab拉取最新的APP代码打包。

参数化构建


这里先新建一个项目





基本上一个项目构建就部署完了,接下来我们看下效果

触发式构建


即gitlab有提交操作,则自动部署,这里只需要设置一个认证的token即可,gitlab调用触发器,需要使用 JENKINS_URL/job/new_cms/build?token=TOKEN_NAME即可

点击 【系统管理】 –> 【管理用户】 查看用户Token

根据触发器验证令牌和用户id+token会生成一个下面的url,只需要访问这个URL地址jenkins就会自动部署对应项目的代码。
http://admin:fd27d8b8a7c707df89f9574b18980dc5@42.159.244.183:8080/job/test/build?token=test

gitlab配置webhooks,每次提交代码就访问这个url,执行构建

在jenkins全局在jenkins全局安全设置中取消勾选“防止跨站点请求伪造,不然jenkins会认为gitlab的请求不合法。
点击 【系统管理】 –> 【Configure Global Security】

添加完成测试:点击test模拟提交操作,看看是否会执行自动构建

定时构建


定时构建一般用在安卓,ios打包,每天凌晨会拉取安卓,ios进行编译打包,并自动推送到共享。

示例:在上面的参数化构建示例上添加如下触发器,就是每天凌晨1:30分自动执行安卓或ios打包脚本,上面的参数化构建默认值是master就是每天从代码仓库的master分支拉取最新的代码打包。

火柴 wechat
扫描上方二维码关注我的博客!
0%