Jenkins 是什么?
- Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能;
- Jenkins 是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作;
- 续的软件版本发布/测试项目;
- 监控外部调用执行的工作。
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
通过链接访问 Jenkins 主页(这里我忽略第一次访问要密码,创建账号和初初始化插件,插件默认推荐安装):
首先,全局工具配置:
主要是 JDK,Git 和 maven 配置:
要是你不知道可以执行命令安装位置,可以试下用命令查找:
find / -name git
然后接着就是创建可以访问 github(我项目部署在上面)Credentials 账号:
使用默认的 global 账号进入到配置页面:
注意:这里就要设计到 SSH 免登陆设置(在 Linux 服务器上面输入下面命令):
ssh-keygen -t rsa
然后一直空格到结束,下图生成的秘钥位置和文件:
注意:这里是需要把秘钥(id_rsa)里面的内容全部拷贝到 Jenkins private key 的内容,Username 文本框可以任意填
最后我们创建自己的任务
注意:这里我的项目是基于 maven 来搭建的,可能默认安装的插件是不会安装 maven 插件的
这个时候我们就要去 Jenkins 系统管理面安装插件
在可选插件里面查找 maven(Maven Integration plugin)插件,这里我已经安装了
安装完成之后就会有上面的那个 maven 选项可以选择。
最后配置我们自己项目:
Github 源码的配置(注意:这里就是使用我们上面配置的 Credentials 账号):
差点忘记,我们还需要到我们 github 账号上面去添加我的公钥,Jenkins 才能 check out 代码:
编译 maven 项目的配置:
命令:clean package -e -X -DskipTests
Jenkins 编译打包通过 SSH 远程登录部署服务器
在构建后操作选择:
注意:上面的 SSH Publishers 也是需要插件(Publish Over SSH)安装才能有的选项
然后需要到系统管理-->> 系统设置里面去设置连接的账号:
这里还要注意一点就是要在 Jenkins 服务上面配置可以 SSH 登录远程服务器
这里还要注意一点就是要在 Jenkins 服务上面配置可以 SSH 登录远程服务器*
ssh-copy-id root@服务器IP
ssh 服务器IP (登录试下是否成功)
上面都配置完后,填写打包生成的 Jar 文件和远程服务器运行的脚本
远程服务器上面编写的脚本(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
最后保存。
项目构建:
构建成功状态是蓝色,说明的项目部署成功,如果是红色,就是构建的有问题,具体的问题可以查看控制台输出的错误来定位错误。
下面是控制台的位置:
这样基本的部署就完成了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于