目录
Jenkins的介绍
Jenkins安装准备工作
Jdk安装
安装git
安装maven
安装Mysql
安装Jenkins
配置jenkins
jdk配置
Git配置
MAVEN配置
全局配置gitee
构建maven项目
Jenkins部署到远程服务器
进行全局下配置
然后构建项目配置
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。本人的理解就是不用频繁的输入一些打包的命令,然后再去部署,而是通过jenkins远程拉取代码,通过脚本命令,自动打包部署启动项目。
由于jenkins基于java语言实现的,所以需要java环境。另外我们还要安装maven,和git。
请参考Linux jdk的安装。
[root@localhost ~]# yum -y install git
验证是否安装成功
[root@localhost ~]# git --version
git version 1.8.3.1
去官网下载安装包 http://maven.apache.org/download.cgi下载linux格式
上传到服务器并解压到/usr/local/maven/maven,接下来配置maven环境变量
[root@localhost maven]# vim /etc/profile
添加以下内容
export MAVEN_HOME=/usr/local/maven/maven
export PATH=$PATH:$MAVEN_HOME/bin
:wq保存,刷新生效
[root@localhost maven]# source /etc/profile
检测是否配置成功,若出现版本信息,则成功。
[root@localhost maven]# mvn -version
修改maven的settings.xml文件 添加镜像依赖
nexus-aliyun
*
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
osc
*
http://maven.oschina.net/content/groups/public/
由于项目连接到了数据库,所以这里装一下,也可以不安装,为了省事,此处用docker 安装
获取镜像
[root@localhost ~]# docker pull mysql
安装
[root@localhost ~]# docker create --name mysql8 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql
启动
[root@localhost ~]# docker start mysql8
在使用navicat连接时如果报2059错误。解决方案
将mysql用户登录的加密规则修改为mysql_native_password。
[root@localhost ~]# docker exec -it mysql8 bash
root@d8b19495f4e1:/etc/mysql# mysql -uroot -p
输入密码
执行以下sql
%是支持远程连接,localhost是本地连接。
ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
然后就可以连接上了。
下载安装包 Jenkins官网下载地址
下载完成上传到服务器,执行以下命令进行安装
[root@localhost ~]# rpm -ivh jenkins-2.296-1.1.noarch.rpm
安装完之后的默认路径
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
修改配置文件如下截图的位置
[root@localhost ~]# vim /etc/sysconfig/Jenkins
填写自己的java路径和用户修改为root
注意:1、实际生产不要用root用户启动,要自己创建一个用户
2、java路径要写到bin下面的java 如/usr/local/jdk1.8.0_181/bin/java
然后将以下文件授权给root不然后面执行脚本的时候会告诉你没有权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/log/jenkins
chown -R root:root /var/cache/jenkins
启动jenkins
root@localhost ~]# service jenkins start
默认端口是8080。浏览器访问http:你的ip:8080
此时若报以下错误
解决方案如下,报错原因是jdk的问题
1.卸载原来的jdk,安装官方的jdk版本。
2.在服务器额外配置插件,根据自己服务器的版本安装,如下:
需要安装#Ubuntu9以上
apt-get install ttf-dejavu
#CentOS 6
yum install dejavu-sans-fonts
#CentOS 7
yum install fontconfig
然后重新启动就可以了
[root@localhost jenkins]# service jenkins restart
cat /var/lib/jenkins/secrets/initialAdminPassword
将密码复制到此处,然后下一步,安装推荐的插件,创建用户,然后保存继续。
因为我们要构建maven项目,所以需要安装maven插件,还需要从码云拉取代码,所以需要gitee的插件(跟下图一样)
下面全局配置如下图
私人令牌,点问号处会告诉你去哪生成
配置maven
脚本如下,脚本一定要放在你自己的位置,比如我的是/opt
#!/bin/bash -ile
project=jenkins.jar
pathName=test-jenkins
echo "拷贝文件"
rm -rf /opt/springboot/$project
mv /var/lib/jenkins/workspace/$pathName/target/$project /opt/springboot/
echo "切换路径"
cd /opt/springboot/
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo "杀死存在进程"
fi
BUILD_ID=dontKillMe
echo "执行"
nohup java -jar $project --spring.profiles.active=test > catalina.out 2>&1 &
echo "启动成功!"
如果在Windows下的编辑工具导致文件格式是dos下的,需要改成Unix执行以下命令
sed -i "s/\r//" start.sh
然后给start.sh授权
chmod +x start.sh
然后开始构建,接下来静静的等待即可。
新建一个虚拟机,这里你可以直接克隆一个。
需要安装 Publish Over SSH插件
name------------随意取
hostname--------------你要运行服务的IP地址
username------------------登录的用户名
Remote Directory-----------要将打好的包发送到的位置
source file ----------源文件地址
remove prefix---------移除前缀
remote directory-----远程地址 ,加上前面那个配置 最终会发送到/opt/myjar这个文件下面
exec command ------执行脚本文件 这个需要放在要发布服务的那台机器上
脚本如下
project=jenkins.jar
echo "Stopping $project"
source /etc/profile
pid=`ps -ef | grep $project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
echo "stop finish"
nohup java -jar /opt/myjar/$project --spring.profiles.active=test > catalina.out 2>&1 &
echo "start run....."
然后再重新构建,就可以了。
最后demo地址,可以直接下载,或者自己建一个springboot项目都可以。注意,我的项目配置文件是在阿波罗配置中心配置的,如果不需要,请打开上面配置的注释,然后注释掉阿波罗的配置即可。