java 虚拟机部署方式
参数:
shell执行部分
#!/bin/bash
source /etc/profile
echo '当前环境为:'$project_env
echo $server_dir
echo '可回退的版本有如下:'
ls -lt /data/builddir/${project_env}/${server_name} |awk '{print $9}'|head -n 11
if [[ ${type} = "deploy" ]]; then
echo "此次操作为发布,发布构建ID为:"$BUILD_NUMBER
mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
cd $WORKSPACE/${server_dir}
$build_bash >/tmp/$server_name.txt
cat /tmp/$server_name.txt |grep 'BUILD SUCCESS'
if [[ $? == 0 ]];then
echo '构建成功'
find $WORKSPACE/${server_dir}/ -name "${server_name}*.jar" |xargs -i cp {} /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
rm -f /tmp/$server_name.txt
else
echo '构建失败'
cat /tmp/$server_name.txt
rm -f /tmp/$server_name.txt
exit 1
fi
elif [[ ${type} = "rollback" ]]; then
if [ ! -n "${rollback_version}" ] ;then
echo "请填写回退版本号"
exit 1
else
echo "您要回退的版本号为:"$rollback_version
fi
echo "程序回退,无需打包"
elif [[ ${type} = "restart" ]]; then
echo '重启服务,无需打包'
fi
ssh-server部分
#!/bin/bash
if [[ ${type} = "rollback" ]]; then
version=${rollback_version}
else
version=${BUILD_NUMBER}
fi
echo ${version}
sh -x /opt/dubbo_deploy.sh ${type} ${project_env} $version ${server_name}
node 服务虚拟机部署
参数:
shell执行代码
#!/bin/bash
echo '环境为:'$project_env
source /etc/profile
echo $WORKSPACE
cd $WORKSPACE
mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
##安装依赖
/usr/bin/npm i --unsafe-perm
##编译
/usr/bin/npm run build
##拷贝至dev环境nginx服务器
cd $WORKSPACE
zip -r --symlinks /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip .
ssh-server执行代码
#!/bin/bash
source /etc/profile
base_dir=/opt/node
project_dir=$base_dir/$server_name
rm -rf $project_dir
mkdir -p $project_dir
cd $project_dir
if [[ ${type} = "deploy" ]]; then
wget deploy.com/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip
elif [[ ${type} = "rollback" ]]; then
#若为回退,从上一次构建成功的ID中获取压缩包
wget deploy.com/${project_env}/${server_name}/${rollback_version}/${server_name}.zip
fi
unzip ${server_name}.zip
cd $project_dir
npm run build && npm start &
PHP-service 服务虚拟机部署
参数:
shell执行代码
#!/bin/bash
echo '环境为:'$project_env
if [[ ${type} = "deploy" ]]; then
echo "此次操作为发布,发布构建ID为:"$BUILD_NUMBER
mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
cd $WORKSPACE
zip -r /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip .
elif [[ ${type} = "rollback" ]]; then
if [ ! -n "${rollback_version}" ] ;then
echo "请填写回退版本号"
exit 1
else
echo "您要回退的版本号为:"$rollback_version
fi
echo "程序回退,无需打包"
fi
ssh-server执行代码
#!/bin/bash
source /etc/profile
base_dir=/opt/php
project_dir=$base_dir/$server_name
rm -rf $project_dir
mkdir -p $project_dir
cd $project_dir
if [[ ${type} = "deploy" ]]; then
wget 10.161.31.185:80/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip
elif [[ ${type} = "rollback" ]]; then
#若为回退,从上一次构建成功的ID中获取压缩包
wget 10.161.31.185:80/${project_env}/${server_name}/${rollback_version}/${server_name}.zip
fi
unzip ${server_name}.zip
if [[ ${JOB_NAME} =~ "service" ]]; then
##如果是php-service,需要重新restart一下
php $project_dir/start.php restart -d
else
echo "php-api无需restart"
fi
rm -rf ${server_name}.zip
PHP-api 服务虚拟机部署
参数:
shell执行代码
#!/bin/bash
echo '环境为:'$project_env
if [[ ${type} = "deploy" ]]; then
echo "此次操作为发布,发布构建ID为:"$BUILD_NUMBER
mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
cd $WORKSPACE
zip -r /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip .
elif [[ ${type} = "rollback" ]]; then
if [ ! -n "${rollback_version}" ] ;then
echo "请填写回退版本号"
exit 1
else
echo "您要回退的版本号为:"$rollback_version
fi
echo "程序回退,无需打包"
fi
ssh-server执行代码
#!/bin/bash
base_dir=/opt/php
project_dir=$base_dir/$server_name
rm -rf $project_dir
mkdir -p $project_dir
cd $project_dir
if [[ ${type} = "deploy" ]]; then
wget deploy.com/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip
elif [[ ${type} = "rollback" ]]; then
#若为回退,从上一次构建成功的ID中获取压缩包
wget deploy.com/${project_env}/${server_name}/${rollback_version}/${server_name}.zip
fi
unzip ${server_name}.zip
if [[ ${JOB_NAME} =~ "service" ]]; then
##如果是php-service,需要重新restart一下
php $project_dir/start.php restart -d
else
echo "php-api无需restart"
fi
rm -rf ${server_name}.zip