Jenkins + Github 的持续集成环境 (本人博客部署)

本贴最后更新于 2327 天前,其中的信息可能已经时移俗易

Jenkins 是什么?

  1. Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能;
  2. Jenkins 是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作;
  3. 续的软件版本发布/测试项目;
  4. 监控外部调用执行的工作。

Jenkins 安装和部署(通过 yum 来安装):


	##安装 添加yum repos,然后安装
	sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
	sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
	sudo yum install jenkins

sudo service jenkins start/stop/restart
sudo chkconfig jenkins on

注意:如果没有 java 环境的话要安装 java

一般这么安装都能启动成功(默认的启动占用的端口是 8080):

如果想要修改 Jenkins 默认启动端口号(我自己使用 7777 端口):

vi /etc/sysconfig/jenkins

01.png

通过链接访问 Jenkins 主页(这里我忽略第一次访问要密码,创建账号和初初始化插件,插件默认推荐安装):

02.png


首先,全局工具配置:

03.png

主要是 JDK,Git 和 maven 配置:

04.png

05.png

要是你不知道可以执行命令安装位置,可以试下用命令查找:

find / -name git


然后接着就是创建可以访问 github(我项目部署在上面)Credentials 账号:

06.png

使用默认的 global 账号进入到配置页面:

07.png

注意:这里就要设计到 SSH 免登陆设置(在 Linux 服务器上面输入下面命令):

ssh-keygen -t rsa

然后一直空格到结束,下图生成的秘钥位置和文件:

09.png

注意:这里是需要把秘钥(id_rsa)里面的内容全部拷贝到 Jenkins private key 的内容,Username 文本框可以任意填

最后我们创建自己的任务

10.png

注意:这里我的项目是基于 maven 来搭建的,可能默认安装的插件是不会安装 maven 插件的

11.png

这个时候我们就要去 Jenkins 系统管理面安装插件

12.png

在可选插件里面查找 maven(Maven Integration plugin)插件,这里我已经安装了

13.png

安装完成之后就会有上面的那个 maven 选项可以选择。


最后配置我们自己项目:

Github 源码的配置(注意:这里就是使用我们上面配置的 Credentials 账号):

14.png

差点忘记,我们还需要到我们 github 账号上面去添加我的公钥,Jenkins 才能 check out 代码:

15.png

编译 maven 项目的配置:

16.png

命令:clean package -e -X -DskipTests

Jenkins 编译打包通过 SSH 远程登录部署服务器

在构建后操作选择:

17.png

注意:上面的 SSH Publishers 也是需要插件(Publish Over SSH)安装才能有的选项

19.png

然后需要到系统管理-->> 系统设置里面去设置连接的账号:

20.png

21.png这里还要注意一点就是要在 Jenkins 服务上面配置可以 SSH 登录远程服务器

这里还要注意一点就是要在 Jenkins 服务上面配置可以 SSH 登录远程服务器*

ssh-copy-id root@服务器IP

ssh 服务器IP (登录试下是否成功)

上面都配置完后,填写打包生成的 Jar 文件和远程服务器运行的脚本

18.png

远程服务器上面编写的脚本(jingge-blog.sh):

#!/bin/sh
DATE=$(date +%Y-%m-%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/root/program/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/home/jingzing/service/blog
JARFILE=jinggeBlog-1.0.0-SNAPSHOT.jar
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv -f /root/data/jenkins/$JARFILE .
nohup java -Xms256m -Xmx256m -jar $JARFILE --spring.profiles.active=production > /dev/null 2>&1 &
if [ $? = 0 ];then
sleep 30
tail -n 30 logback.log
fi

最后保存。


项目构建:

22.png

构建成功状态是蓝色,说明的项目部署成功,如果是红色,就是构建的有问题,具体的问题可以查看控制台输出的错误来定位错误。

23.png

下面是控制台的位置:

24.png

这样基本的部署就完成了。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    谢谢,不错!!!

  • morge

    这个显示格式。。。😂