目录
1、准备好maven项目,上传github
1.1、下载git工具到本地,使用git bash工具连接github
1.2、使用ssh-keygen -t rsa -C "邮箱" 命令,一直回车,找到生成的C:\Users\Administrator\.ssh\id_rsa.pub复制内容,配置到github
1.3、上传springboot项目操作命令(github创建的仓库名称必须和项目名称相同):
1.4、查看github仓库里上传成功
2、阿里云(我是centos7以上的)安装Jenkins
2.1、不推荐使用下载的jenkins.war包,推荐使用yum最好,因为后面Jenkins控制台连接阿里云服务器会访问不了,yum安装jenkins会在服务器/etc/passwd下生成用户信息,到时可以在控制台ssh连接阿里云时切换该用户。
2.2、阿里云安装Jenkins命令
3、阿里云修改Jenkins端口并访问控制台
3.1、vim编辑/etc/sysconfig/jenkins文件,找到JENKINS_USER、JENKINS_PORT修改为自己的端口,因为8080可能会跟有tomcat的默认端口冲突,最好修改下
3.2、新增配置信息vim /etc/init.d/jenkins,不然会报错
3.3、启动Jenkins
3.4、执行centos7以上:systemctl status jenkins.service,centos7以下service status jenkins
3.5、防火墙开放Jenkins端口
3.6、重启防火墙
3.7、访问Jenkins控制台地址,外网服务器使用公有ip:http://服务器ip:8081/,初始密码在:/var/lib/jenkins/secrets/initialAdminPassword
3.8、选择“Install suggested plugins”安装默认的插件,下面Jenkins就会自己去下载相关的插件进行安装。
3.9、创建超级管理员账号,可以直接跳过,如果遇到403的情况,返回重新尝试下
4、系统管理-->配置全局工具配置(如果服务器安装了maven、jdk,去掉自动安装,选择自己服务器安装目录)-->点击保存,我这儿是已经在服务器安装好了的。
5、系统管理-->插件管理(安装好需要的插件)
6、阿里云服务器安装git
6.1、安装Git命令:
6.2、查看git是否安装成功:
6.3、生成密钥和码云进行连接,码云作为github和服务器中央权限管理的
6.4、生成授权证书,中间直接全部回车就行
6.5、复制/root/.ssh/id_rsa.pub里的内容,到码云进行配置ssh公钥
6.6、查看是否连接成功
7、Linux服务器注册到Jenkins
7.1、在Jenkins中依次点击:系统管理 -> 节点管理 -> 新建节点
7.2、保存后,点击启动代理配置,查看日志是否成功
8、部署项目配置
8.1、在Jenkins主页点击<创建一个新任务>,然后输入任务名,选择构建一个maven项目,注意:只有安装了Maven Integration插件才有这个选项
8.2、点击确定后进入maven项目配置界面,选择限制项目的运行节点,标签表达式填写上面成功创建的节点名称,没报红表明成功
8.3、源码配置
8.5、配置build,Goals and options 填写自动maven编译的方式,test是不对测试代码进行编译,也可以在pom配置排除掉。这个根据实际情况写,也可以填写install
8.6、使用shell自动编译项目成jar方式,根据实际项目情况写
8.7、保存后,进到该maven项目下,点击立即构建,构建失败的话可以先清理下工作空间
8.8、查看控制定输出日志
#java env
export JAVA_HOME=/usr/local/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
#maven env path
MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
进入springboot项目目录下右键Git Bash Here执行git init初始化仓库命令、
再执行git add .提交全部文件、
再执行git commit -m "提交备注"、
再建立github连接 git remote add origin https://github.com/xxxxx/xxxx.git、
再最后git push -u origin master,正常情况要输入用户名和密码才能提交
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
开放端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
加载端口
firewall-cmd --reload
查看防火墙开放端口
firewall-cmd --list-ports
sudo service iptables restart
因为前面推荐安装了部分,再安装几个比较好用的Jenkins插件:Rebuilder、Safe Restart、Publish Over SSH、Maven Integration 依次点击:系统管理 -> 插件管理 -> 可选插件,输入插件名搜索插件,安装完重新登录下才能生效。
|
yum install git
[root@iZ806w7vfiyfb2Z ydqc]# git version
git version 1.8.3.1
6.3、生成密钥和码云进行连接,码云作为github和服务器中央权限管理的
git config --global user.name "admin"
git config --global user.email "[email protected]"
ssh-keygen -t rsa -C "github填写的邮箱"
在gitee中依次点击:设置 -> 安全设置 -> ssh公钥,将公钥中的内容复制到公钥文本框中,随便写一个标题即可
ssh [email protected]
出现Authentication success的字样就是成功,因为搭建好了再来编写的文章,有些找不到记录了。
回到列表看到以下,成功建立节点
#!/bin/sh
echo "开始执行shell脚本"
# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe
# 指定最后编译好的jar的存放位置
JAR_PATH=/usr/local/ydqc
# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH
# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/var/lib/jenkins/workspace/TestTask/target
# 如果路径不存在,就创建路径
[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH
# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=ydqc-0.0.1-SNAPSHOT.jar
# 获取该项目的进程号,用于重新部署项目前杀死进程
process_id=$(ps -ef | grep ydqc | awk '{print $2}')
# 如果该项目正在运行,就杀死项目进程
echo $process_id
if [[ ! -z "$process_id" ]]
then
echo "停止正在进行服务"
kill -9 $process_id
echo "开始启动服务"
else
echo "服务未启动"
fi
# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}
# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH
# 进入到存放项目jar的位置
cd ${JAR_PATH}
# 后台启动项目,并且将控制台日志输出到nohup.out中
nohup java -jar ${JENKINS_JAR_NAME} >ydqc.log &
echo "shell脚本执行完毕"
提示:可以自己先在服务器里执行一下该运行jar命令
如果出现jenkins Failed to parse POMs或者not can command 'java'啥的要好好检查下全局工具配置的jdk。
注意:没问题的话,会编译Download 很多jar包和资源文件,时间可能会久一点。
然后到阿里云服务器使用netstat -nltp查看是否有已经成功运行的项目,这儿的端口是springboot的application.properties一样的端口。