In order to make our process automation and make free of error, we build automation script for deploy. Following script will download war file from maven repository and deploy to tomcat.
#!/bin/sh
TOMCAT_HOME=/opt/tomcat
if [ -z $PROJECT]; then
PS3="Please choose:"
PROJECTS="project1 project2"
echo "Choose which project you want to deploy from the list below:"
select PROJECT in $PROJECTS;
do
case $PROJECT in
project1)
REPO_PATH=com/yuan/project1
PRJ_NAME=project1
break;;
esac
done
fi
if [ -z $PROJECT ]; then
echo "Error in select project!"
exit 1
fi
read -p "Please enter which version you want to deploy:" PRJ_VERSION
WAR_FILE="http://build.yuan.com:9999/repository/"$REPO_PATH"/"$PRJ_VERSION"/"$PRJ_NAME"-"$PRJ_VERSION".war"
echo "Project Name="$PRJ_NAME
echo "WAR location="$WAR_FILE
echo "TOMCAT_HOME=" $TOMCAT_HOME
WORKING_DIR=~/tmp
echo "Working Dir=" $WORKING_DIR
echo "---clean working dir..."
if [ -d $WORKING_DIR ]
then
rm -fR $WORKING_DIR
fi
mkdir $WORKING_DIR
cd $WORKING_DIR
echo "Get war file..."
wget $WAR_FILE
if [ $? -ne 0 ]; then
exit 1
fi
echo "shutdown tomcat..."
$TOMCAT_HOME/bin/shutdown.sh
# wait 6 seconds after a clean shutdown before killing
count=1
pids=`ps aux | grep java | grep catalina | awk '{print $2}'`
while [ $count -ne 6 ] && [ -n "$pids" ];
do
echo "Waiting 1s on TOMCAT java pids: $pids"
sleep 1
count=$(( $count + 1))
pids=`ps aux | grep java | grep catalina | awk '{print $2}'`
done
# kill if anything is still around
if [ -n "$pids" ]; then
pkill -9 $pids
fi
echo "deploy war to tomcat..."
rm -rf $TOMCAT_HOME/webapps/$PRJ_NAME/
rm -rf $TOMCAT_HOME/webapps/$PRJ_NAME.war
cp $WORKING_DIR/$PRJ_NAME-$PRJ_VERSION.war $TOMCAT_HOME/webapps/$PRJ_NAME.war
echo "start tomcat..."
$TOMCAT_HOME/bin/startup.sh
echo "done."
分享到:
相关推荐
- Deploy it in ArcGIS or other GIS environments. #### Conclusion Geoprocessing scripts with Python are invaluable tools for GIS professionals. By leveraging the power of Python, you can automate ...
【tcnj-deploy:快速网站部署工具】 `tcnj-deploy` 是一个基于Bash脚本的工具,专为简化将网站文件目录部署到个人TCNJ(The College of New Jersey)网站的过程而设计。这个脚本是命令行界面的,适合熟悉Linux或...
1. **自动化(Automation)**:自动化是使用脚本或工具自动执行重复性任务的过程,能提高效率,减少人工干预。 2. **部署(Deployment)**:指的是将应用程序或服务部署到生产环境的过程。 3. **零停机时间部署(Zero-...
6. **Scripting**: 脚本编写是PDQ_Repo的关键组成部分,包括使用VBScript(Visual Basic Script)和其他脚本语言,用于创建自定义解决方案。这些脚本可以帮助解决特定环境下的问题,或者扩展标准工具的功能。 7. **...
解决方案定义单个配置.rocketryrc文件后,就可以运行.rocketryrc npx deploy run ,一切都会为您处理。 然后,通过其他一些小步骤,您可以通过CI工具使整个过程自动化,以便在您将更改推送到master分支时自动进行...
English | FlubuCore 介绍 “ FlubuCore-Fluent Builder Core”是一个跨平台的构建和部署自动化系统。 您可以使用直观的流畅界面在C#中定义构建和部署脚本。 这使您可以完成代码,智能感知,调试,FlubuCore自定义...
Automation Engineer Subject Matter Expert Workflow 业务组件模块 测试计划模块 8、测试任务定义、测试任务分配 定义测试集 测试集的例子: 创建“Mercury Tours Site”测试集 Mercury...
什么是网络挂钩? ... 还允许您指定必须满足的规则才能触发该挂钩。 例如,如果您使用的是Github或Bitbucket,则每当您将更改推送到项目的主分支时,都可以使用设置一个挂钩,该挂钩在登台服务器上为您的项目运行重新...