【自动化部署】如何使用Jenkins+git 实现代码自动化部署

一、什么是持续集成?

  (1)  持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

(2)没有持续集成

项目做模块集成的时候,发现很多借口都不通==>浪费大量时间

需要手动去编译打包最新的代码==>构建过程不透明

发布代码,上线,基本靠手工==>脚本乱飞

(3)持续集成最佳实践:

维护一个单一的代码库

使构建自动化

执行测试是构建的一部分

集成日志及历史记录

使用统一的依赖包管理库

每天至少集成一次

(4)jenkins介绍

Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有 
Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson

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

Jenkins下载:http://updates.jenkins-ci.org/

 jenkins的全部镜像:http://mirrors.jenkins-ci.org/status.html

所以运行jenkins 需要先安装Java运行环境;我这里使用的Java1.8版本;

要实现代码实时自动化提交,这里需要使用到git服务器 webhook功能,POST的URL设置为,http://jenkins:8080/git/notifyCommit?url=https://git.oschina.net/****/****.git,这样代码一签入,Git服务器便会请求这个地址,触发了Job。
也可以直接在浏览器上试用下,地址栏直接输入:http://localhost:8080/git/notifyCommit?url=https://git.oschina.net/****/****.git,会发现Job确实就执行了。
不过因为我们是内部服务器,Git服务器不方便直接请求,所以只能退而求其次,定时去触发Job了。下面是每20分钟执行一次,好像最少是每分钟一次。

二、jenkins安装与配置信息:

1)、安装:

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo # 下载jenkins yum包并指定位置存储

rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

yum install jenkins

2)、配置(可选,可以使用默认配置信息):

vim /etc/init.d/jenkins

#修改配置

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java

/usr/local/java/bin/java    #这一行是新增自定义的java命令位置

"

配置文件/etc/sysconfig/jenkins

打开配置文件

vim /etc/sysconfig/jenkins

修改$JENKINS_USER

JENKINS_USER=”jenkins” (默认为jenkins)

也可以修改端口

JENKINS_PORT=”8080”(默认是8080端口)

3)、启动、停止、重启jenkins

/etc/init.d/Jenkins start|stop|restart 或 service jenkins start|stop|restart

查看监听端口的进程:netstat -tunlp |grep :8080 或使用ps -ef|grep jenkins 查看进程是否存在

启动成功后访问:自己服务器IP:8080

4)、访问jenkins服务及插件:

1、浏览器访问打开如下页面:

cat /var/lib/jenkins/secrets/initialAdminPassword #查看初始化密码,并复制密码到浏览器密码表单中;

2、点下一步等待安装插件,安装插件完成;我这里设置用户名:jenkins,密码:jenkins ,当然你也可以根据自己的喜爱设置;

3、jenkins的插件以及配置

jenkins系统管理比较重要的就是插件管理了 ,因为jenkins的工作全部是由插件来完成。

在插件管理中,有可更新、可选插件、已安装,日常的插件安装都是在这个界面上完成的。比如为了和gitlab协同,我们需要安装gitlab的插件。

当插件安装不上的时候,可以直接去网上下载后手动安装

下载地址:http://updates.jenkins-ci.org/

解压备份plugin.tar.gz

mv plugins /var/lib/jenkins/

chown -R jenkins.jenkins plugins/

service jenkins restart

三、jenkins界面配置

实现研发提交代码到git,jenkins就会自动检测到并且自动进行构建(合并、打包),构建完成之后将打好的包(war、jar包都可以)通过jenkins的插件传到tomcat的webapps目录下,然后重启tomcat,实现自动打包部署。

这里以jenkins+git+Gradle自动化构建Android APK包,为例:其他大同小异;

1)、首先我们需要配置jenkins的全局配置

http://x.x.x.x:8080/configureTools/

【自动化部署】如何使用Jenkins+git 实现代码自动化部署_第1张图片

分别配置JDK,Git,Gradle三个板块的路径。 
JDK:别名=任意,JAVA_HOME=JDK目录 
Git:别名=任意, Path to Git executable=Git安装目录\bin\git
Gradle:别名=任意,GRADLE_HOME=Gradle下载目录\Gradle\gradle-3.xx 
Gradle尽量配置多个,因为项目的gradle版本可能不一样,所以需要选择不同的Gradle版本进行编译。

2)、全局属性:配置Android SDK目录,在打包是有可能会出现ANDROID_HOME not found的情况,所以在系统管理->系统设置->全局属性版块勾选上Environment variables选项,然后添加 ,记得更改值内的路径为本机sdk目录。 
注意:这里的键需要和本机环境变量内的Android SDK目录的键一致

3)、新建项目并配置 
新建→构建一个自由风格的软件项目,进入到新建项目后,填写名称及说明。

源码管理–>Git,输入代码托管地址Repository URL,添加账号Credentials(Add),填写分支Branch Specifier (blank for ‘any’) 

构建触发器–>Poll SCM   如定时构建 H/15 ****  代表15分钟构建一次

构建–>Execute Windows batch command  如gralde Android程序:目录\gralde assembleRelease 代表构建正式包

保存,点击项目的立即构建。(主要的配置已经已经完成,如果还需要发送邮件或者构建完成后执行某一命令,还可以继续配置,在此不再说明。) 

至此就介绍完了。更多插件玩法,可以在插件管理中搜索添加

【自动化部署】如何使用Jenkins+git 实现代码自动化部署_第2张图片

 

 

你可能感兴趣的:(运维工具)