# deploy **Repository Path**: fenggn/deploy ## Basic Information - **Project Name**: deploy - **Description**: java web项目环境自动化安装脚本 - **Primary Language**: Shell - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-06-16 - **Last Updated**: 2024-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 系统部署使用说明 --- > deploy是用来辅助java-web项目部署更新的脚本仓库,使用该脚本仓库能够快速安装java、mysql、redis、nginx和fastdfs。 ## 1、系统要求 - CentOS 7 - Root权限 - 能够正常访问外网(部分软件安装使用在线安装方式) - yum源环境正常工作 ## 2、准备 ### 2.1、远程连接   如提供vpn和堡垒机请先登录vpn和堡垒机。Windows推荐使用xshell、putty或git bash, MacOS/Linux使用 terminal。 远程连接命令:ssh -p[端口号] [用户名]@[IP],如: ```shell script ssh -p22 root@192.168.0.1 ``` 注:输入密码时为隐式输入,不会显示任何字符。 ### 2.2、上传文件 #### 2.2.1、FTP传输方式   windows推荐使用wscp或git bash, MacOS/Linux使用terminal。 远程上传命令:scp -P[端口号] -rp [源地址] [用户名]@[IP]:[目标地址],如: ```shell script scp -P22 -rp deploy.zip root@192.168.0.1:~/app/ ``` #### 2.2.2、远端中转方式   先将要上传的文件上传到远端拿到资源地址,登录服务器后使用wget命令下载,如: 上传test.jpg到http://upload.donghaiming.com,获取连接地址“https://pi-ip.oss-accelerate.aliyuncs.com/upload/test.jpg”,在服务器端执行: ```shell script wget https://pi-ip.oss-accelerate.aliyuncs.com/upload/test.jpg ``` ### 2.3、部署说明 - 基金会部署所需安装的环境:java、mysql、fastdfs、nginx、tomcat - 校友会部署所需安装的环境:java、mysql、fastdfs、nginx、tomcat、redis - 开始之前进行一下初始化操作 ```shell script # 更新系统及升级软件 yum -y update && yum -y upgrade ``` ```shell script # 安装基础命令 yum install -y wget curl zip unzip net-tools git ``` ```shell script # 关闭防火墙 yum remove -y iptables && systemctl stop firewalld && ufw disable ``` ```shell script # 创建操作目录 mkdir /root/app && cd /root/app ``` ```shell script # 下载当前项目到操作目录下,需要输入gitlab账号密码 git clone http://devops.huiyixing.com/gitlab/shi-shi/deploy.git chmod +x deploy/*/bin/*.sh ``` ## 3、开始 ### 3.1、安装Java 先查看是否已存在java ```shell script java -version ``` ![java版本信息](https://huiyixing.dakabg.com/group1/M00/00/A4/CgIlOmBa1z2AYhhyAAAVDHY5zDk225.png) 出现上述界面则表示已安装OpenJDK 1.8,无需重复安装,若不存在则执行安装命令 ```shell script /bin/bash /root/app/deploy/Java/bin/install.sh ``` ### 3.2、安装FastDFS ```shell script /bin/bash /root/app/deploy/FastDFS/bin/install.sh ``` 默认数据保存路径:/vdata/fdfs_storage/data,可以在脚本中修改该路径 常用的操作命令 ```shell script # tracker和storage 启动|关闭|重启 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start|stop|restart /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start|stop|restart ``` ### 3.4、安装Redis ```shell script /bin/bash /root/app/deploy/Redis/bin/install.sh ``` redis配置文件位于:/etc/redis.conf, 如需修改密码则编辑配置文件, 找到requirepass,去掉前面的 “#”号,将foobared改为要设置的密码 ![redis修改密码](https://huiyixing.dakabg.com/group1/M00/00/A4/CgIlOmBa3gKAR6giAABiI2T2DIU848.png) ```shell script # 编辑命令 vi /etc/redis.conf # 键入"i"键进入编辑模式,编辑完成后依次键入"Esc" -> ":" -> "wq"回车保存退出 # 如编辑错误不保存退出,依次键入"Esc" -> ":" -> "q!"回车保存退出 ``` ```shell script # 重启redis命令 systemctl restart redis ``` ### 3.4、安装MySQL #### 3.4.1、安装 ```shell script /bin/bash /root/app/deploy/MySQL/bin/install.sh ``` 安装完成会打印mysql临时密码,或查看操作目录下的mysql-tmp-pass.txt获取临时密码。 ```shell script # 查看mysql临时密码 cat /root/app/mysql-tmp-pass.txt ``` 使用临时密码登录mysql ```shell script mysql -uroot -p ``` 出现指令Enter password: 后输入(隐式输入)临时密码,进入mysql交互终端 ![mysql终端](https://huiyixing.dakabg.com/group1/M00/00/A5/CgIlOmBa4DGAW-kaAAA_YVakxVE594.png) 修改mysql登录密码并授权允许外部访问 ```shell script set global validate_password_policy=0; ALTER USER 'root'@'localhost' IDENTIFIED BY '要设置的密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '要设置的密码' WITH GRANT OPTION; FLUSH PRIVILEGES; exit; ``` 退出后再使用新设置的密码进行登录验证密码是否修改成功 #### 3.4.2、创建数据库 - 校友会数据库:association、association_create_tables - 微捐赠数据库:donation、association_create_tables - 基金会数据库:foundation ```shell script mysql -uroot -p -N -e "create database 数据库名 default character set utf8mb4 collate utf8mb4_general_ci;" ``` #### 3.4.3、导入数据 语法:mysql -uroot -p 数据库名 < sql文件 例如导入基金会数据: ```shell script mysql -uroot -p 数据库名 < foundatoin.sql ``` #### 3.4.4、设置远程访问 编辑/etc/my.cnf在文件末尾追加bind-address=0.0.0.0(单机部署不需要修改) ```shell script # 编辑配置文件 vi /etc/my.cnf # 键入"i"键进入编辑模式,编辑完成后依次键入"Esc" -> ":" -> "wq"回车保存退出 # 如编辑错误不保存退出,依次键入"Esc" -> ":" -> "q!"回车保存退出 # 修改配置文件需要重启mysql服务 systemctl restart mysqld ``` #### 3.4.5、常用命令 ```shell script systemctl start|stop|restart mysqld # 启动|停止|重启mysql服务 mysql -uroot -p # 登录mysql mysql -uroot -p donation < donation.sql # 向donation库执行sql mysqldump -uroot -p donation > donation.sql # 将donation库导出到donation.sql文件 mysqldump -uroot-p donation user > user.sql # 将donation库下的user表导出到user.sql文件 ``` ### 3.5、部署Tomcat #### 3.5.1、安装 ```shell script /bin/bash /root/app/deploy/Tomcat/bin/install.sh ``` |安装包|前端包名称|后端包名称| |----|----|----| |校友会|association-manage-app|association-api| |微捐赠|donation-manage|donation-api| |基金会|donation-app|donation| 将研发提供的前后端包上传到操作目录下并按上述表格描述进行解压重命名 #### 3.5.2、部署 如基金会前端包: ```shell script cd /root/app unzip dist.zip -d tomcat/webapps/ mv tomcat/webapps/dist tomcat/webapps/donation-app ``` 如基金会后端包: ```shell script cd /root/app unzip donation.war -d tomcat/webapps/donation ``` #### 3.5.3、修改配置文件 修改项目配置文件application.yml, 分别修改 database、redis、fastdfs配置 ```shell script # 编辑配置文件 vi /root/app/tomcat/webapps/后端文件夹/WEB-INF/classes/application.yml # 键入"i"键进入编辑模式,编辑完成后依次键入"Esc" -> ":" -> "wq"回车保存退出 # 如编辑错误不保存退出,依次键入"Esc" -> ":" -> "q!"回车保存退出 ``` #### 3.5.4、启动tomcat ```shell script cd /root/app /bin/bash tomcat/bin/startup.sh ``` ### 3.6、安装Nginx #### 3.6.1、安装 ```shell script /bin/bash /root/app/deploy/Nginx/bin/install.sh ``` #### 3.6.1、配置 安装完成后配置文件路径 /etc/nginx/conf.d/server.conf,可以编辑该配置文件修改代理 ```shell script vi /etc/nginx/conf.d/server.conf ``` 证书文件目录为 /etc/nginx/ssl, 配置证书过程如下 ```shell script # 将证书后缀为.crt、.pem或.cer的文件覆盖/etc/nginx/ssl/server.crt cp server.crt /etc/nginx/ssl/server.crt # 将证书后缀为.key的文件覆盖/etc/nginx/ssl/server.key cp server.key /etc/nginx/ssl/server.key ``` 修改配置或替换证书后需要重新加载配置 ```shell script nginx -s reload ``` #### 3.6.1、常用命令 ```shell script nginx -s stop # 停止nginx nginx -t # 校验配置文件 nginx -s reload # 重新加载配置 nginx -s restart # 重新启动nginx nginx # 启动nginx ``` ## 4、更新 ### 4.1、更新后端包 停止tomcat -> 上传war包到tomcat/webapps下 -> 解压并重命名 -> 启动tomcat ### 4.2、更新前端包 上传zip包到tomcat/webapps下 -> 解压并重命名