shell自动化执行脚本自动化部署JDK,git,maven,jar,mysql

shell脚本可以大大简化和自动化部署流程,包括安装必要的软件(JDK、Git、Maven)、配置MySQL从库、构建和运行Java应用等任务。使用shell脚本,可以一键完成这些繁琐的步骤,提高效率,减少人为错误。

1. 编写Shell脚本

首先,创建一个名为deploy.sh的shell脚本,该脚本将包含以下部分:

安装JDK、Git和Maven
#!/bin/bash

# 安装JDK
sudo yum install -y java-11-openjdk

# 安装Git
sudo yum install -y git

# 安装Maven
# Maven官方不提供直接的yum安装方式,需要手动下载并解压
MAVEN_VERSION=3.6.3
wget http://www-us.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz
sudo tar xzf apache-maven-${MAVEN_VERSION}-bin.tar.gz -C /opt/
sudo ln -s /opt/apache-maven-${MAVEN_VERSION} /opt/maven
echo "export PATH=/opt/maven/bin:$PATH" | sudo tee -a /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh
配置MySQL从库

这部分需要在MySQL主库上已经完成配置,并且需要知道主库的IP地址、复制用户和密码。

# 配置MySQL从库(假设MySQL已经安装)
MYSQL_MASTER_IP="master_ip"
MYSQL_REPLICATION_USER="replication_user"
MYSQL_REPLICATION_PASSWORD="replication_password"

# MySQL配置文件可能根据安装方式有所不同
# 这里假设使用的是/etc/my.cnf
echo "
[mysqld]
server-id=2
log_bin=mysql-bin
read_only=1
" | sudo tee -a /etc/my.cnf

# 重启MySQL服务
sudo systemctl restart mysqld

# 在MySQL从库上配置复制
mysql -u root -p -e "
CHANGE MASTER TO
MASTER_HOST='${MYSQL_MASTER_IP}',
MASTER_USER='${MYSQL_REPLICATION_USER}',
MASTER_PASSWORD='${MYSQL_REPLICATION_PASSWORD}',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=0;
START SLAVE;
"
克隆代码库、构建和运行Java应用
# 克隆代码库
git clone https://your.repository.url/yourproject.git
cd yourproject

# 使用Maven构建项目
mvn clean package

# 运行Jar包
java -jar target/yourapp.jar &

2. 运行Shell脚本

  • deploy.sh脚本上传到服务器B。
  • 通过SSH登录到服务器B。
  • 赋予脚本执行权限:chmod +x deploy.sh
  • 执行脚本:./deploy.sh

注意事项

  • 在运行脚本之前,确保你有足够的权限执行这些命令,可能需要sudo权限。
  • 根据实际情况调整脚本中的版本号、路径等信息。
  • MySQL从库的配置需要根据实际的主库状态进行调整,特别是MASTER_LOG_FILEMASTER_LOG_POS的值。
  • 确保防火墙和安全组设置允许服务器间的相应通信。

通过使用shell脚本自动化部署流程,可以显著提高部署效率和准确性,特别是在需要频繁更新和部署的开发环境中。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值