赞
踩
新手上路,对着视频做了一个谷粒的在线教育项目。测试跑通之后,想要自己试着部署到自己的云服务器上,闲着也是闲着不是。言归正传
简介
在微服务架构中,随着服务越来越多,服务的打包部署就会成为一个相当麻烦的事情。比如说我的edu-online项目目前就有10个服务需要部署,有没有什么办法让我们部署一次之后,只要点击执行就可以自动部署呢?当然有!下面我们使用Jenkins来完成一个微服务架构中的自动化部署工作。
Jenkins的基本使用
关于Jenkins的基本使用可以参考使用Jenkins一键打包部署SpringBoot应用
前期准备
将自己本地的项目上传到远程仓库,在idea里面装上git的插件,并配置好git,git的配置可以参考Git 安装配置全流程,这里我是上传到了gitee。
将项目的前台也上传到gitee上
git pull origin master --allow-unrelated-histories
git add .
git commit -m '提交说明'
git push origin master
nohup java -jar jenkins.war &
这个时候打开浏览器访问地址:http://ip:8080,即可访问到jenkins。第一次登录需要输入管理员密码,然后创建用户,装插件,创建实例等。这里我是对着视频配置的。jenkins安装配置
一系列都正好之后,就来到了这个页面,第一次进来什么都没有,我这个是已经配置完的。
这里有个小问题忘说了,就是部署时候可能会提示说不建议root用户进行部署,涉及权限问题什么的。然后说给jenkins用户加权限操作等,我没管他,
直接全部上到了root里面。
clean package -Dmaven.test.skip=true
然后经过漫长的等待下载依赖打包即可。可以通过查看控制台输出有无报错问题并更改。
我这里已经SUCCESS了。
接下来把模块都安排上,这里使用的最简单的办法,没有使用视频中的docker部署。
BUILD_ID=DONTKILLME #!/bin/bash #获取你想运行jar包的进程号 pid=`ps -ef | grep api_gateway-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` #如果存在则把该进程杀掉 if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi echo "复制jar包" #把jenkins打的jar包复制到自己指定的目录下 cp /root/.jenkins/workspace/edu_parent/infrastructure/api_gateway/target/api_gateway-1.0-SNAPSHOT.jar /usr/mydemo echo "启动jar包" #最后启动jar包并把日志输出到指定的文件中以便查看 nohup java -jar /usr/mydemo/api_gateway-1.0-SNAPSHOT.jar > /usr/mydemo/api_gateway.log 2>&1 &
其他模块类似,以此类推,将所有模块都新建任务并构建。通过log文件查看
最后部署前台项目
#!/bin/bash pwd ls node -v npm -v git --version java -version echo '构建的版本号:'${BUILD_NUMBER} npm install npm run build pwd echo '----- 以上的列出的文件是 jenkin 服务 workspace 中 vue-admin-template-master 目录下的文件-------' echo "复制dist文件夹" #把dist文件夹复制到httpd服务器指定的目录下 cd /var/www/html/ #mkdir vue-admin-template-master cp -r /root/.jenkins/workspace/vue-admin-template-master/dist/* /var/www/html/vue-admin-template-master/ echo "构建完成"
在服务都已经起起来的时候,访问http://ip/项目名就可以访问到了。
接下里就可以愉快的访问自己部署在服务器上的项目了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。