瀏覽代碼

测试环境运行版本

reghao 6 年之前
父節點
當前提交
daed4a5680
共有 28 個文件被更改,包括 149 次插入89 次删除
  1. 4 1
      common/src/main/java/cn/reghao/autodop/common/config/BuildDeployResult.java
  2. 16 0
      common/src/main/java/cn/reghao/autodop/common/http/HttpApi.java
  3. 5 4
      common/src/main/java/cn/reghao/autodop/common/utils/compression/ZipUtil.java
  4. 5 0
      dagent/src/main/java/cn/reghao/autodop/dagent/deploy/Deploy.java
  5. 3 0
      dagent/src/main/java/cn/reghao/autodop/dagent/deploy/DockerDeploy.java
  6. 9 3
      dagent/src/main/java/cn/reghao/autodop/dagent/deploy/ZipDeploy.java
  7. 2 5
      dagent/src/main/java/cn/reghao/autodop/dagent/service/DeployServiceImpl.java
  8. 3 11
      dagent/src/main/java/cn/reghao/autodop/dagent/utils/AfterStart.java
  9. 4 0
      dagent/src/main/resources/application-dev.yml
  10. 4 0
      dagent/src/main/resources/application-prod.yml
  11. 4 0
      dagent/src/main/resources/application-test.yml
  12. 1 5
      dagent/src/main/resources/application.yml
  13. 6 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppBuildPipeline.java
  14. 18 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppDeploy.java
  15. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppIntegrate.java
  16. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/BuildDispatcher.java
  17. 4 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/Deployer.java
  18. 1 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/Maven.java
  19. 2 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DnktMgrZipPack.java
  20. 1 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DockerPack.java
  21. 1 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DotnetPack.java
  22. 3 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/PackApp.java
  23. 2 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/ZipPack.java
  24. 2 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/ZipRemotePack.java
  25. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/orchestrate/pojo/orchestration/AppOrchestration.java
  26. 0 16
      scripts/batch-build.sh
  27. 18 14
      scripts/build.sh
  28. 27 0
      scripts/copy_to_remote.sh

+ 4 - 1
common/src/main/java/cn/reghao/autodop/common/config/BuildDeployResult.java

@@ -13,14 +13,17 @@ import lombok.NoArgsConstructor;
 @Data
 public class BuildDeployResult {
     private String appId;
+    private String description;
     private String version;
     private String stage;
+    private int code;
     private String msg;
     private String host;
 
-    public BuildDeployResult(String appId, String stage, String msg) {
+    public BuildDeployResult(String appId, String stage, int code, String msg) {
         this.appId = appId;
         this.appId = stage;
+        this.code = code;
         this.msg = msg;
     }
 }

+ 16 - 0
common/src/main/java/cn/reghao/autodop/common/http/HttpApi.java

@@ -0,0 +1,16 @@
+package cn.reghao.autodop.common.http;
+
+/**
+ * @author reghao
+ * @date 2020-03-16 15:27:08
+ */
+public class HttpApi {
+    public static String url(String address, int port, String api) {
+        String prefix = "http://";
+        if (port != 80) {
+            return prefix + address + ":" + port + api;
+        } else {
+            return prefix + address + api;
+        }
+    }
+}

+ 5 - 4
common/src/main/java/cn/reghao/autodop/common/utils/compression/ZipUtil.java

@@ -175,10 +175,11 @@ public class ZipUtil {
     }
 
     public static void main(String[] args) throws IOException {
-        String src = "/home/reghao/tmp/autodop/opt/data/compile-dir/jigou-mgr/ant-design-pro/dist-test";
-        String zip = "/home/reghao/tmp/autodop/opt/webroot/jigou-mgr/jigou-mgr_526_2020-03-12.zip";
-        String dir = "/home/reghao/tmp/autodop/opt/webroot/jigou-mgr/app";
-        ZipUtil.zip(new File(src), zip);
+        String src = "/home/reghao/tmp/autodop/opt/data/compile-dir/dnkt/IQuizoo_Teaching_FE_New/dist-test";
+        String zip = "/home/reghao/tmp/autodop/opt/webroot/dnkt/dnkt_536.zip";
+        //ZipUtil.zip(new File(src), zip);
+
+        String dir = "/home/reghao/tmp/autodop/opt/webroot/dnkt/app";
         ZipUtil.unzip(zip, dir);
     }
 }

+ 5 - 0
dagent/src/main/java/cn/reghao/autodop/dagent/deploy/Deploy.java

@@ -12,6 +12,11 @@ public interface Deploy {
     /**
      * 部署应用
      *
+     * @param appId 应用标识
+     * @param appPath 完成的应用路径(HTTP 地址或 docker 地址)
+     * @param runningDir 应用运行根目录
+     * @param isRun 是否运行应用
+     *
      * @return 0 - 部署成功,1 - 部署失败
      * @date 2019-10-15 下午4:57
      */

+ 3 - 0
dagent/src/main/java/cn/reghao/autodop/dagent/deploy/DockerDeploy.java

@@ -22,11 +22,14 @@ public class DockerDeploy implements Deploy {
         try {
             docker.pull(appPath);
             if (isRun) {
+                result.setStage("运行");
                 docker.run(appId, appPath);
             }
 
+            result.setCode(0);
             result.setMsg("成功");
         } catch (Exception e) {
+            result.setCode(1);
             result.setMsg(e.getMessage());
         }
 

+ 9 - 3
dagent/src/main/java/cn/reghao/autodop/dagent/deploy/ZipDeploy.java

@@ -5,17 +5,20 @@ import cn.reghao.autodop.common.http.DefaultWebRequest;
 import cn.reghao.autodop.common.http.WebRequest;
 import cn.reghao.autodop.common.utils.FileUtil;
 import cn.reghao.autodop.common.utils.compression.ZipUtil;
+import cn.reghao.autodop.dagent.config.DmasterProperties;
+import org.springframework.stereotype.Service;
 
 import java.io.File;
 
 /**
+ * TODO 是否可以托管给 spring,而不是每次都创建一个对象
+ *
  * @author reghao
  * @date 2020-03-11 17:13:02
  */
 public class ZipDeploy implements Deploy {
     @Override
     public BuildDeployResult deploy(String appId, String appPath, String runningDir, boolean isRun) {
-        String url = "http://localhost:4000/api/app/file/dl/" + appPath;
         WebRequest request = new DefaultWebRequest();
 
         BuildDeployResult result = new BuildDeployResult();
@@ -26,20 +29,23 @@ public class ZipDeploy implements Deploy {
             String appRunningDir = appDir + "/app";
             checkDir(appDir, appRunningDir);
 
-            String filepath = appDir + "/" + appPath;
+            String filepath = appDir + "/" + appPath.substring(appPath.lastIndexOf("/") + 1);
             if (!new File(filepath).exists()) {
-                request.download(url, filepath);
+                request.download(appPath, filepath);
             }
 
             // TODO 前端静态文件并不存在运行的概念,它与二进制运行文件和 Python 之类的应用不同
             if (isRun) {
+                result.setStage("运行");
                 FileUtil.eraseDir(new File(appRunningDir));
                 ZipUtil.unzip(filepath, appRunningDir);
             }
 
+            result.setCode(0);
             result.setMsg("成功");
         } catch (Exception e) {
             e.printStackTrace();
+            result.setCode(1);
             result.setMsg(e.getMessage());
         }
 

+ 2 - 5
dagent/src/main/java/cn/reghao/autodop/dagent/service/DeployServiceImpl.java

@@ -33,6 +33,7 @@ public class DeployServiceImpl implements DeployService {
         String packerType = deployConfig.getPackerType();
         boolean isRun = deployConfig.isRun();
 
+        // result 中只有 version 不需要设置
         BuildDeployResult result;
         if ("docker".equalsIgnoreCase(packerType)) {
             Deploy deployApp = new DockerDeploy();
@@ -44,14 +45,10 @@ public class DeployServiceImpl implements DeployService {
             Deploy deployApp = new ZipRemoteDeploy();
             result = deployApp.deploy(appId, appPath, runningDir, isRun);
         } else {
-            result = new BuildDeployResult();
-            result.setAppId(appId);
-            result.setStage("部署");
-            result.setMsg("打包类型不正确");
+            result = new BuildDeployResult(appId, "部署", 1, "打包类型不正确");
         }
 
         // TODO 指定主机 IP 地址的前缀,后期通过配置指定,不动态获取
-        //result.setAppPath(appPath);
         result.setHost(NetworkUtil.hostAddress("192.168"));
         return result;
     }

+ 3 - 11
dagent/src/main/java/cn/reghao/autodop/dagent/utils/AfterStart.java

@@ -1,5 +1,6 @@
 package cn.reghao.autodop.dagent.utils;
 
+import cn.reghao.autodop.common.http.HttpApi;
 import cn.reghao.autodop.dagent.config.DmasterProperties;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.ApplicationArguments;
@@ -34,16 +35,7 @@ public class AfterStart implements ApplicationRunner {
      * @date 2019-09-26 下午5:23
      */
     private void activate() throws Exception {
-        String url = httpApi(properties.getAddress(), properties.getPort(), properties.getApi());
-        log.info("应用已启动");
-    }
-
-    private String httpApi(String address, int port, String api) {
-        String prefix = "http://";
-        if (port != 80) {
-            return prefix + address + ":" + port + api;
-        } else {
-            return prefix + address + api;
-        }
+        String url = HttpApi.url(properties.getAddress(), properties.getPort(), properties.getApi());
+        log.info("dagent 应用已启动...");
     }
 }

+ 4 - 0
dagent/src/main/resources/application-dev.yml

@@ -0,0 +1,4 @@
+dmaster:
+  address: localhost
+  port: 4000
+  api: /api/node

+ 4 - 0
dagent/src/main/resources/application-prod.yml

@@ -0,0 +1,4 @@
+dmaster:
+  address: 192.168.0.50
+  port: 4000
+  api: /api/node

+ 4 - 0
dagent/src/main/resources/application-test.yml

@@ -0,0 +1,4 @@
+dmaster:
+  address: 192.168.0.50
+  port: 4000
+  api: /api/node

+ 1 - 5
dagent/src/main/resources/application.yml

@@ -6,8 +6,4 @@ spring:
     active: @profile.active@
   grpc:
     enable: true
-    port: 4001
-dmaster:
-  address: 192.168.0.222
-  port: 4000
-  api: /api/node
+    port: 4001

+ 6 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppBuildPipeline.java

@@ -34,8 +34,8 @@ public class AppBuildPipeline implements Callable<String> {
         this.isRun = isRun;
         this.appIntegrate = new AppIntegrate(app);
         // TODO 暂时不使用动态代理
-        //this.appIntegrate = ProxyUtils.createProxyObject(AppIntegrate.class);
-        this.appIntegrate.setApp(app);
+        /*this.appIntegrate = ProxyUtils.createProxyObject(AppIntegrate.class);
+        this.appIntegrate.setApp(app);*/
 
         this.appLocalRepo = SysConfig.localRepos + "/" + app.getIdentifier();
         this.appCompileDir = SysConfig.compileDir + "/" + app.getIdentifier();
@@ -65,6 +65,7 @@ public class AppBuildPipeline implements Callable<String> {
             }
         }
         result.setVersion(version);
+        log.info("{} -> 代码更新完成", app.getIdentifier());
 
         String appEntryDir;
         if (app.getProjBuild() != null) {
@@ -85,6 +86,7 @@ public class AppBuildPipeline implements Callable<String> {
             result.setMsg(e.getMessage());
             return JsonUtil.objectToJson(result);
         }
+        log.info("{} -> 编译完成", app.getIdentifier());
 
         /* 打包阶段 */
         try {
@@ -95,6 +97,7 @@ public class AppBuildPipeline implements Callable<String> {
             result.setMsg(e.getMessage());
             return JsonUtil.objectToJson(result);
         }
+        log.info("{} -> 打包完成", app.getIdentifier());
 
         /* 部署阶段 */
         if (isDeploy) {
@@ -105,6 +108,7 @@ public class AppBuildPipeline implements Callable<String> {
                 e.printStackTrace();
             }
 
+            log.info("{} -> 部署完成", app.getIdentifier());
             return JsonUtil.objectToJson(results);
         }
 

+ 18 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppDeploy.java

@@ -1,6 +1,7 @@
 package cn.reghao.autodop.dmaster.app.service.build;
 
 import cn.reghao.autodop.common.config.BuildDeployResult;
+import cn.reghao.autodop.common.http.HttpApi;
 import cn.reghao.autodop.common.utils.JsonUtil;
 import cn.reghao.autodop.dmaster.app.pojo.BuildMsg;
 import cn.reghao.autodop.dmaster.app.service.build.tools.notifier.DingNotify;
@@ -36,10 +37,22 @@ public class AppDeploy {
         AppPacker appPacker = app.getBuild().getAppPacker();
         String packerType = appPacker.getPackerType();
         String appPath = "";
+        // 根据不同的打包类型,确定应用的地址
         if ("docker".equalsIgnoreCase(packerType)) {
             appPath = appPacker.getAppRootPath() + "/" + app.getIdentifier() + ":" + version;
         } else if ("zip".equalsIgnoreCase(packerType)) {
-            appPath = app.getIdentifier() + "_" + version;
+            String env = app.getEnv();
+            // 根据应用环境确定 autodop 的地址和端口
+            if ("test".equals(env)) {
+                appPath = HttpApi.url("192.168.0.50", 4000,
+                        "/api/app/file/dl/" + app.getIdentifier() + "_" + version + ".zip");
+            } else if ("prod".equals(env)) {
+                appPath = HttpApi.url("static.iquizoo.com", 80,
+                        "/api/app/file/dl/" + app.getIdentifier() + "_" + version + ".zip");
+            } else {
+                appPath = HttpApi.url("localhost", 4000,
+                        "/api/app/file/dl/" + app.getIdentifier() + "_" + version + ".zip");
+            }
         } else if ("zip-remote".equalsIgnoreCase(packerType)) {
             // TODO zip-remote 使用 zip 打包,并将应用包上传到远程服务器,appRootPath 是一个 HTTP 链接
             appPath = appPacker.getAppRootPath() + app.getIdentifier() + "_" + version;
@@ -47,8 +60,10 @@ public class AppDeploy {
 
         List<BuildDeployResult> results = Deployer.deploy(app, appPath, isRun);
         for (BuildDeployResult result : results) {
-            if ("成功".equalsIgnoreCase(result.getMsg())) {
-                log.info("{} 部署成功", app.getIdentifier());
+            result.setVersion(version);
+            result.setDescription(app.getDescription());
+            if ("运行".equals(result.getStage()) && result.getCode() == 0) {
+                log.info("{} 已运行", app.getIdentifier());
                 BuildMsg buildMsg =
                         new BuildMsg(app.getIdentifier(), app.getDescription(), version, app.getEnv());
                 // TODO 异步通知

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppIntegrate.java

@@ -102,7 +102,7 @@ public class AppIntegrate {
      * @return
      * @date 2019-11-07 下午2:03
      */
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
-        return packApp.pack(appId, version, appEntryDir);
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
+        packApp.pack(appId, version, appEntryDir);
     }
 }

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/BuildDispatcher.java

@@ -49,7 +49,7 @@ public class BuildDispatcher {
                 if (app != null) {
                     existApps.add(app);
                 } else {
-                    results.add(new BuildDeployResult(appId, "初始化", "应用不存在"));
+                    results.add(new BuildDeployResult(appId, "初始化", 0, "应用不存在"));
                 }
             });
         }

+ 4 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/Deployer.java

@@ -4,6 +4,7 @@ import cn.reghao.autodop.common.config.BuildDeployResult;
 import cn.reghao.autodop.common.grpc.client.GrpcClientProxy;
 import cn.reghao.autodop.common.grpc.facade.DeployService;
 import cn.reghao.autodop.common.config.DeployConfig;
+import cn.reghao.autodop.common.http.HttpApi;
 import cn.reghao.autodop.dmaster.orchestrate.pojo.orchestration.AppOrchestration;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
@@ -46,12 +47,12 @@ public class Deployer {
             JSONObject jsonObject = (JSONObject) object;
             BuildDeployResult result = jsonObject.toJavaObject(BuildDeployResult.class);
 
-            // TODO 若部署成功,则检查应用是否成功运行,若启动失败,则回退到上一个版本。若上一个版本仍失败,则返回错误并发出紧急通知
-            if (isRun && "成功".equals(result.getMsg())) {
+            // TODO 检查应用是否成功运行,若启动失败,则回退到上一个版本。若上一个版本仍失败,则返回错误并发出紧急通知
+            if ("运行".equals(result.getStage()) && result.getCode() == 1) {
                 String healthCheck = app.getRunning().getHealthCheck();
                 int port = app.getRunning().getPort();
                 // 健康检查 URL
-                String url = "http://" + host + ":" + port + healthCheck;
+                String url = HttpApi.url(host, port, healthCheck);
             }
 
             results.add(result);

+ 1 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/Maven.java

@@ -29,8 +29,7 @@ public class Maven implements CompileCode, PackApp {
     }
 
     @Override
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
-        return null;
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
     }
 
     public static void main(String[] args) throws MavenInvocationException {

+ 2 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DnktMgrZipPack.java

@@ -23,11 +23,11 @@ public class DnktMgrZipPack implements PackApp {
     }
 
     @Override
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
         String tag = appId + "_" + version + SUFFIX;
         String dst = appPacker.getAppRootPath() + "/" + tag;
         if (new File(dst).exists()) {
-            return tag;
+            return;
         }
 
         String src = appEntryDir + "/src";
@@ -38,7 +38,5 @@ public class DnktMgrZipPack implements PackApp {
         FileUtil.mvDir(start, app);
 
         ZipUtil.zip(new File(app), dst);
-
-        return tag;
     }
 }

+ 1 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DockerPack.java

@@ -17,7 +17,7 @@ public class DockerPack implements PackApp {
     }
 
     @Override
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
         DockerClient docker = new DockerClient();
         String repo = appPacker.getAppRootPath() + "/" + appId;
         String image = repo + ":" + version;
@@ -25,6 +25,5 @@ public class DockerPack implements PackApp {
         docker.build(image, appEntryDir);
         docker.push(image);
         docker.close();
-        return image;
     }
 }

+ 1 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/DotnetPack.java

@@ -8,7 +8,6 @@ package cn.reghao.autodop.dmaster.app.service.build.tools.packer;
  */
 public class DotnetPack implements PackApp {
     @Override
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
-        return null;
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
     }
 }

+ 3 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/PackApp.java

@@ -9,9 +9,10 @@ package cn.reghao.autodop.dmaster.app.service.build.tools.packer;
  */
 public interface PackApp {
     /**
+     * 打包方式确定运行方式
+     *
      * @param version 应用版本
-     * @return
      * @date 2020-01-21 下午4:19
      */
-    String pack(String appId, String version, String appEntryDir) throws Exception;
+    void pack(String appId, String version, String appEntryDir) throws Exception;
 }

+ 2 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/ZipPack.java

@@ -20,13 +20,12 @@ public class ZipPack implements PackApp {
     }
 
     @Override
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
         String tag = appId + "_" + version + SUFFIX;
         String dst = appPacker.getAppRootPath() + "/" + tag;
         if (new File(dst).exists()) {
-            return tag;
+            return;
         }
         ZipUtil.zip(new File(appEntryDir), dst);
-        return tag;
     }
 }

+ 2 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/packer/ZipRemotePack.java

@@ -20,14 +20,13 @@ public class ZipRemotePack implements PackApp {
     }
 
     @Override
-    public String pack(String appId, String version, String appEntryDir) throws Exception {
+    public void pack(String appId, String version, String appEntryDir) throws Exception {
         String tag = appId + "_" + version + SUFFIX;
         String dst = appPacker.getAppRootPath() + "/" + tag;
         if (new File(dst).exists()) {
-            return tag;
+            return;
         }
         ZipUtil.zip(new File(appEntryDir), dst);
         // TODO 将应用包上传到远程服务器
-        return tag;
     }
 }

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/orchestrate/pojo/orchestration/AppOrchestration.java

@@ -20,7 +20,7 @@ public class AppOrchestration extends Orchestration {
     private AppDeploy deploy;
     private AppRunning running;
     private String env;
-    // 编译 app 时所处的目录
+    // 编译 app 时所处的目录,以仓库目录为起点
     private String entryDir;
     // TODO 假设在集群部署时应用只有访问地址不一样,其它的配置文件都是一样
     @ElementCollection(fetch = FetchType.EAGER)

+ 0 - 16
scripts/batch-build.sh

@@ -1,16 +0,0 @@
-#!/bin/sh
-
-set -e
-
-sh ./build.sh dmaster test 192.168.0.50 gjs
-#sh ./build.sh dagent test 192.168.0.171 gjs
-#sh ./build.sh dagent test 192.168.0.172 guanjingsong
-#sh ./build.sh dagent test 192.168.0.173 guanjingsong
-#sh ./build.sh dagent test 192.168.0.174 guanjingsong
-
-#sh ./build.sh dagent test s61.iquizoo.com xcJ50y0BNpa1H1Qj
-#sh ./build.sh dagent test s62.iquizoo.com Z3jeNgQuufLvvXkk
-#sh ./build.sh dagent test s72.iquizoo.com D34VqpmIdk5wynUSECGp0QC7iEUoWo
-#sh ./build.sh dagent test s74.iquizoo.com YcxtZI6yQeeSDw0mDD7eeunwOEhAca
-#sh ./build.sh dagent test s71.iquizoo.com fbxK4ZxCSlczNvECRaf65Nv5nBDnfZ
-#sh ./build.sh dagent test s73.iquizoo.com CYsZufT56vX6rr6FLD6IF1YCXiJbwv

+ 18 - 14
scripts/build.sh

@@ -5,16 +5,13 @@
 
 set -e
 
-APP=$1
-ENV=$2
-REMOTE_HOST=$3
-PASSWORD=$4
+ENV=$1
 
 # 时间戳
 TIMESTAMP=`date '+%Y-%m-%d_%H-%M-%S'`
 
-if [ -z ${APP} ] || [ -z ${ENV} ] || [ -z ${REMOTE_HOST} ] || [ -z ${PASSWORD} ]; then
-  echo 'error: sh build.sh ENV APP REMOTE_HOST PASSWORD'
+if [ -z ${ENV} ]; then
+  echo 'error: sh build.sh ENV'
   exit -1
 fi
 
@@ -30,14 +27,21 @@ fi
 SRC_DIR='/home/reghao/code/aha/autodop'
 cd ${SRC_DIR}
 mvn clean package -P${ENV}
-cp ${APP}/target/${APP}-1.0.0.jar ${DST_DIR}/app/${APP}-1.0.0_${TIMESTAMP}.jar
+cp dmaster/target/dmaster-1.0.0.jar ${DST_DIR}/app/dmaster-1.0.0_${TIMESTAMP}.jar
+cp dagent/target/dagent-1.0.0.jar ${DST_DIR}/app/dagent-1.0.0_${TIMESTAMP}.jar
+cp scripts/run-jar.sh ${DST_DIR}/app/run-jar.sh
 mvn clean
 
-# 拷贝运行脚本到远程主机
-sshpass -p ${PASSWORD} scp run-jar.sh root@${REMOTE_HOST}:/opt/servers/jars/autodop
-cd ${DST_DIR}/app
 # 拷贝应用到远程主机
-sshpass -p ${PASSWORD} scp ${APP}-1.0.0_${TIMESTAMP}.jar root@${REMOTE_HOST}:/opt/servers/jars/autodop/app
-sshpass -p ${PASSWORD} ssh root@${REMOTE_HOST} "source /etc/profile && sh /opt/servers/jars/autodop/run-jar.sh ${APP} ${TIMESTAMP}"
-
-#sshpass -p qUkTdHNv6_HC ssh root@s12.iquizoo.com -t 'cd /root; bash --login'
+cd scripts
+sh ./copy_to_remote.sh dmaster ${TIMESTAMP} 192.168.0.50 gjs
+sh ./copy_to_remote.sh dagent ${TIMESTAMP} 192.168.0.171 gjs
+sh ./copy_to_remote.sh dagent ${TIMESTAMP} 192.168.0.172 guanjingsong
+sh ./copy_to_remote.sh dagent ${TIMESTAMP} 192.168.0.173 guanjingsong
+sh ./copy_to_remote.sh dagent ${TIMESTAMP} 192.168.0.174 guanjingsong
+
+#sh ./copy_to_remote.sh dagent ${TIMESTAMP} s61.iquizoo.com xcJ50y0BNpa1H1Qj
+#sh ./copy_to_remote.sh dagent ${TIMESTAMP} s71.iquizoo.com fbxK4ZxCSlczNvECRaf65Nv5nBDnfZ
+#sh ./copy_to_remote.sh dagent ${TIMESTAMP} s72.iquizoo.com D34VqpmIdk5wynUSECGp0QC7iEUoWo
+#sh ./copy_to_remote.sh dagent ${TIMESTAMP} s73.iquizoo.com CYsZufT56vX6rr6FLD6IF1YCXiJbwv
+#sh ./copy_to_remote.sh dagent ${TIMESTAMP} s74.iquizoo.com YcxtZI6yQeeSDw0mDD7eeunwOEhAca

+ 27 - 0
scripts/copy_to_remote.sh

@@ -0,0 +1,27 @@
+############
+# 拷贝应用到远程主机
+############
+#!/bin/sh
+
+set -e
+
+APP=$1
+TIMESTAMP=$2
+REMOTE_HOST=$3
+PASSWORD=$4
+
+if [ -z ${APP} ] || [ -z ${TIMESTAMP} ] || [ -z ${REMOTE_HOST} ] || [ -z ${PASSWORD} ]; then
+  echo 'error: sh build.sh ENV APP REMOTE_HOST PASSWORD'
+  exit -1
+fi
+
+cd /home/reghao/tmp/autodop/app
+
+# 拷贝运行脚本到远程主机
+sshpass -p ${PASSWORD} scp run-jar.sh root@${REMOTE_HOST}:/opt/servers/jars/autodop
+# 拷贝应用到远程主机
+sshpass -p ${PASSWORD} scp ${APP}-1.0.0_${TIMESTAMP}.jar root@${REMOTE_HOST}:/opt/servers/jars/autodop/app
+# 运行远程主机上的应用
+sshpass -p ${PASSWORD} ssh root@${REMOTE_HOST} "source /etc/profile && sh /opt/servers/jars/autodop/run-jar.sh ${APP} ${TIMESTAMP}"
+
+#sshpass -p qUkTdHNv6_HC ssh root@s12.iquizoo.com -t 'cd /root; bash --login'