部署应用介绍与前期准备
这一部分的操作不是在之前的2台服务器上(jenkins服务器和应用部署服务器),而是在开发人员自己的workpc上
Fork(派生)部署应用(这里可以跳过)
web应用程序--放在linux应用部署服务器
mysql数据库--
Fork部署应用程序,获得代码修改权限
Fork
为了做测试,把项目从别的仓库复制到自己的仓库
将原码工程复制到自己的git空间下,之后自己空间下的原码就有修改权限
如何fork应用程序
搜索进入要复制的工程仓库点击fork按钮
项目就自动派生到自己的仓库里了
-----------------------------------------------------------------------------------------------------------
将应用原码部署到本机
maven导入intellij
https://blog.csdn.net/bobozai86/article/details/80346370
自动化部署任务开发
流程:
git 同步最新代码--maven打包--停止tomcat--部署应用--启动tomcat--验证结果
访问jenkins,创建jenkins任务
1.构建一个自由构建的软件
2.填写service信息
勾上retrict where this project can be run
填写上次的节点
3.配置git参数
设置gitlab源码库的位置
repository url填写源码仓库的位置
additional behavior 右侧点击add,选择check-out to a sub-directory,给你要下载到的目录命名
4.填写构建语句,实际构建测试环境
输入
这个语句的作用是:jenkins执行完成后jenkins进程会关闭但是service进程不会被杀掉
作用:加载配置项
执行部署任务
确定执行结果成功
打开浏览器访问
本人遇到问题:
1.数据库问题:
由于之前项目连接的数据库是docker容器里的,但是本人并不会建立桥接模式,所以这个容器的数据库只能是本机访问,现在项目部署到了centos7环境下,考虑到远程连接问题,我就装了一个普通的mysql5.6
centos7下安装mysql5.6
https://www.cnblogs.com/renjidong/p/7047396.html
导入sql文件
(sql文件先上传到百度网盘,再通过centos浏览器访问网盘下载到本地)
https://www.cnblogs.com/yuwensong/p/3955834.html
设置远程访问
mysql -u root -p;
输入密码
use mysql;
grant all privileges on *.* to 用户名@'%' identified by "密码";
后来又出了一个大问题,就是user表有些记录的密码变成了空,导致无法访问mysql!解决方案如下:
修改mysql配置文件,设置mysq登录为不需要密码
vi /etc/profile 按i进入编辑模式
在 mysqld下面添加命令:
skip-grant-tables跳过授权访问表
按下esc 输入:wq!强制保存并退出
重启mysql : service mysqld restart
无密码访问mysql,删除数据库中password字段为空的记录
mysql -u root -p
user mysql;
select user,password from user ;6条记录
select user,password from user where user='root' ;4条记录,并且密码都不为空
于是:delete from user where user !='root';
ctrl+c退出mysql
进入mycof文件把之前添加的skip-grant-tables删除,保存
重启mysql : service mysqld restart
2.jenkins部署的应用只能在本地访问静态页面
jsp页面中的项目名不要写死,采用域对象动态获取的方式
${pageContext.request.contextPath}
3. 0-0-1maven项目后缀问题
maven项目打成war包部署到tomcat的话,包名的命名是在项目名后面加上
-0.0.1-SNAPSHOT.war
解决方案:手动设置war包名https://blog.csdn.net/weixin_36586564/article/details/80257771