一、Jar包
ip="192.168.0.21"
passwd="root"
port="11822"
path="/root/ms"
jarname="dataWarehouse-ms-0.0.1.jar"
target="/root/.jenkins/workspace/dataWareHouse-ms/dataWarehouse-ms/target"
pid=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "ps -ef | grep ${jarname} | grep java | grep -v grep | awk '{print \\$2}'"`
if [ "X${pid}" = "X" ]
then
sshpass -p ${passwd} ssh ${ip} -p${port} -o StrictHostKeychecking=no "rm -rf ${path}/${jarname}"
sshpass -p ${passwd} scp -P ${port} ${target}/${jarname} ${ip}:${path}
sshpass -p ${passwd} ssh ${ip} -p${port} -o StrictHostKeychecking=no "cd ${path};nohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -Dfile.encoding=UTF8 -Duser.timezone=GMT+08 -jar ${jarname} > ${path}/log.out 2>&1 &"
else
sshpass -p ${passwd} ssh ${ip} -p${port} -o StrictHostKeychecking=no "kill -9 \$(ps -ef | grep ${jarname} | grep java | grep -v grep | awk '{print \$2}')"
sshpass -p ${passwd} ssh ${ip} -p${port} -o StrictHostKeychecking=no "rm -rf ${path}/${jarname}"
sshpass -p ${passwd} scp -P ${port} ${target}/${jarname} ${ip}:${path}
sshpass -p ${passwd} ssh ${ip} -p${port} -o StrictHostKeychecking=no "cd ${path};nohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -Dfile.encoding=UTF8 -Duser.timezone=GMT+08 -jar ${jarname} > ${path}/log.out 2>&1 &"
fi
二、Tomcat-静态文件
ip="192.168.0.21"
passwd="root"
port="11122"
tomcatpath="/root/tomcat-bg"
jobname="dev-intelligent-housing-bg"
pid=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "ps -ef | grep ${tomcatpath} | grep java | grep -v grep | awk '{print \\$2}'"`
if [ "X${pid}" = "X" ]
then
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${tomcatpath}/webapps/*"
sshpass -p ${passwd} scp -P ${port} -r /root/.jenkins/workspace/${jobname}/dist ${ip}:${tomcatpath}/webapps
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "mv ${tomcatpath}/webapps/dist ${tomcatpath}/webapps/ROOT"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cp -r /opt/WEB-INF ${tomcatpath}/webapps/ROOT"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "${tomcatpath}/bin/startup.sh"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${tomcatpath}/webapps/*"
sshpass -p ${passwd} scp -P ${port} -r /root/.jenkins/workspace/${jobname}/dist ${ip}:${tomcatpath}/webapps
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "mv ${tomcatpath}/webapps/dist ${tomcatpath}/webapps/ROOT"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cp -r /opt/WEB-INF ${tomcatpath}/webapps/ROOT"
fi
三、Tomcat-war包
ip="192.168.0.21"
passwd="root"
port="12122"
tomcatpath="/root/cn-out-children-cs"
warname="cnSoutChildrenCs.war"
target="/root/.jenkins/workspace/dev-znbx/south-univ-children-sys/cn-out-children-cs/target"
pid=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "ps -ef | grep ${tomcatpath} | grep java | grep -v grep | awk '{print \\$2}'"`
if [ "X${pid}" = "X" ]
then
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${tomcatpath}/webapps/*"
sshpass -p ${passwd} scp -P ${port} ${target}/${warname} ${ip}:${tomcatpath}/webapps
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cd ${tomcatpath}/webapps/;unzip ${warname} -d ./ROOT"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${tomcatpath}/webapps/${warname}"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "${tomcatpath}/bin/startup.sh"
else
sshpass -p ${passwd} ssh ${ip} -p${port} -o StrictHostKeychecking=no "kill -9 \$(ps -ef | grep ${tomcatpath} | grep java | grep -v grep | awk '{print \$2}')"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${tomcatpath}/webapps/*"
sshpass -p ${passwd} scp -P ${port} ${target}/${warname} ${ip}:${tomcatpath}/webapps
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cd ${tomcatpath}/webapps/;unzip ${warname} -d ./ROOT"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${tomcatpath}/webapps/${warname}"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "${tomcatpath}/bin/startup.sh"
fi
四、node镜像
ip="192.168.1.171"
user="root"
passwd="root"
port="22"
docker_port="9094"
docker_space="/tmp/docker/${JOB_NAME}"
docker_images="${JOB_NAME}:latest"
docker_container="${JOB_NAME}"
if [ -d "/root/docker/node/${JOB_NAME}/" ];then rm -rf /root/docker/node/${JOB_NAME}/*;else mkdir -p /root/docker/node/${JOB_NAME}/; fi
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "if [ -d ${docker_space} ];then rm -rf ${docker_space}/*;else mkdir -p ${docker_space}; fi"
old_docker_container=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker ps -a|grep -w ${docker_container}|awk '{print \\$NF}'"`
if [ ! -n "${old_docker_container}" ];then
echo "container not exist"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker rm -f ${old_docker_container}"
fi
old_docker_image=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker images ${docker_images} | grep -v IMAGE |awk '{print \\$3}'"`
if [ ! -n "${old_docker_image}" ];then
echo "images not exist"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker rmi ${docker_images} "
fi
cat >/root/docker/node/${JOB_NAME}/dockerfile<<EOF
FROM node:10-slim
EXPOSE 8080
WORKDIR /my-node
ADD node.tar.gz /my-node
CMD ["npm","start"]
EOF
cat >/root/.jenkins/workspace/${JOB_NAME}/config/config.js<<EOF
const dbConfig = {
host: "192.168.1.64",
user: "root",
password: "123123",
database: "demo2"
}
exports.dbConfig = dbConfig;
EOF
cd /root/.jenkins/workspace/${JOB_NAME};rm -rf node.tar.gz
cd /root/.jenkins/workspace/${JOB_NAME};npm install
cd /root/.jenkins/workspace/${JOB_NAME};tar -zcf node.tar.gz *
sshpass -p ${passwd} scp -P ${port} /root/.jenkins/workspace/${JOB_NAME}/node.tar.gz ${ip}:${docker_space}
sshpass -p ${passwd} scp -P ${port} /root/docker/${JOB_NAME}/dockerfile ${ip}:${docker_space}
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cd ${docker_space};docker build -t ${docker_images} ."
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker run -d -p ${docker_port}:8080 --restart=always --name ${docker_container} ${docker_images}"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${docker_space}/*"
五、Java镜像
ip="192.168.1.171"
user="root"
passwd="root"
port="22"
docker_port="30000"
docker_space="/tmp/docker/${JOB_NAME}"
docker_images="${JOB_NAME}:latest"
docker_container="${JOB_NAME}"
java_dir="/root/.jenkins/workspace/${JOB_NAME}/multi-tenant-eureka-sever/target"
java_name="multi-tenant-eureka-sever-0.0.1.jar"
config_name="application.properties"
config_port="30171"
if [ -d "/root/docker/java/${JOB_NAME}/" ];then rm -rf /root/docker/java/${JOB_NAME}/*;else mkdir -p /root/docker/java/${JOB_NAME}; fi
if [ -d "/root/docker/java/${JOB_NAME}/config/" ];then rm -rf /root/docker/java/${JOB_NAME}/config/*;else mkdir -p /root/docker/java/${JOB_NAME}/config/; fi
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "if [ -d ${docker_space} ];then rm -rf ${docker_space}/*;else mkdir -p ${docker_space}; fi"
old_docker_container=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker ps -a|grep -w ${docker_container}|awk '{print \\$NF}'"`
if [ ! -n "${old_docker_container}" ];then
echo "container not exist"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker rm -f ${old_docker_container}"
fi
old_docker_image=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker images ${docker_images} | grep -v IMAGE |awk '{print \\$3}'"`
if [ ! -n "${old_docker_image}" ];then
echo "images not exist"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker rmi ${docker_images} "
fi
cat >/root/docker/java/${JOB_NAME}/dockerfile<<EOF
FROM openjdk:8u232-jdk-slim
EXPOSE ${config_port}
WORKDIR /my-java
ADD . /my-java
CMD ["java","-Dfile.encoding=UTF8","-Duser.timezone=GMT+08","-jar","${java_name}"]
EOF
cat >/root/docker/java/${JOB_NAME}/config/${config_name}<<"EOF"
spring.application.name=eureka-server
server.port=30171
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${config_port}/eureka/
EOF
sshpass -p ${passwd} scp -P ${port} ${java_dir}/${java_name} ${ip}:${docker_space}
sshpass -p ${passwd} scp -P ${port} /root/docker/java/${JOB_NAME}/config/${config_name} ${ip}:${docker_space}
sshpass -p ${passwd} scp -P ${port} /root/docker/java/${JOB_NAME}/dockerfile ${ip}:${docker_space}
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cd ${docker_space};docker build -t ${docker_images} ."
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker run -d -p ${docker_port}:${config_port} --restart=always --name ${docker_container} ${docker_images}"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${docker_space}/*"
六、tomcat-vue镜像
ip="192.168.1.172"
user="root"
passwd="root"
port="22"
docker_port="9876"
docker_space="/tmp/docker/${JOB_NAME}"
docker_images="${JOB_NAME}:latest"
docker_container="${JOB_NAME}"
if [ -d "/root/docker/vue/${JOB_NAME}/" ];then rm -rf /root/docker/vue/${JOB_NAME}/*;else mkdir -p /root/docker/vue/${JOB_NAME}/; fi
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "if [ -d ${docker_space} ];then rm -rf ${docker_space}/*;else mkdir -p ${docker_space}; fi"
old_docker_container=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker ps -a|grep -w ${docker_container}|awk '{print \\$NF}'"`
old_docker_image=`sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker images ${docker_images} | grep -v IMAGE |awk '{print \\$3}'"`
if [ ! -n "${old_docker_container}" ];then
echo "container not exist"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker rm -f ${old_docker_container}"
fi
if [ ! -n "${old_docker_image}" ];then
echo "images not exist"
else
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker rmi ${docker_images} "
fi
cat >/root/.jenkins/workspace/${JOB_NAME}/src/config/index.js<<EOF
const iot = "http://39.100.246.141:30025";
const iot_login = "http://39.100.246.141:30023";
export {
iot,
iot_login,
}
EOF
cat >/root/docker/vue/${JOB_NAME}/dockerfile<<EOF
FROM tomcat:jdk8-openjdk-slim
RUN rm -rf /usr/local/tomcat/webapps/*
COPY dist /usr/local/tomcat/webapps/ROOT
EOF
cd /root/.jenkins/workspace/${JOB_NAME};npm install
cd /root/.jenkins/workspace/${JOB_NAME};npm run build
cp -r /opt/WEB-INF/ /root/.jenkins/workspace/${JOB_NAME}/dist/
sshpass -p ${passwd} scp -P ${port} -r /root/.jenkins/workspace/${JOB_NAME}/dist ${ip}:${docker_space}
sshpass -p ${passwd} scp -P ${port} /root/docker/vue/${JOB_NAME}/dockerfile ${ip}:${docker_space}
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "cd ${docker_space};docker build -t ${docker_images} ."
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "docker run -d -p ${docker_port}:8080 --restart=always --name ${docker_container} ${docker_images}"
sshpass -p ${passwd} ssh ${ip} -p ${port} -o StrictHostKeychecking=no "rm -rf ${docker_space}/*"