SPYOFF VPN

2017-09-12


现在博客每发一篇文章还是很费劲的,怎么个费劲法呢?

项目是基于 SpringBoot + Gradle 构建的,由 master 分支检出了 80809090 两个分支。 很明显这两个分支是对应 80809090 端口的,然后 nginx 监听 80 端口分发请求。

我是在 vultr VPS 上拉下来两份源码,编译 80809090 端口对应的jar 包。

所以每次发布新文章的步骤是这样几步:

  • 80809090 分支分别合并 master 分支的更新,然后提交到远程服务器
  • shell 登录 vultr VPS
  • 运行一份 blog.sh 脚本(脚本会去拉取两份源码,然后运行 gradle clean build 命令,然后启动 80809090 端口对应的服务)
  • 因为使用 Git 拉取源码的时候采取的是 HTTPS 协议,所以还需要在 shell 上输入两次密码(80809090 端口两份源码)

看下来是不是真的费劲? 当时一开始搞的时候还没想到那么多,但是现在觉得真的很多余,还可以省下更多步骤。

第一步先把 Git 拉取源码的协议改一下吧。 配置一下 SSH Key,然后修改一下源:

git remote set-url origin ssh-url

这样就可以不用输入密码验证了。

第二步,利用 gradle 脚本部署。

Gradle 那么强大,你不想试试吗?

Google 一下 gradle ssh,发现一个牛逼的插件。 赶紧试试。

  • 先导入依赖
buildscript {
    dependencies {
        classpath 'org.hidetake:gradle-ssh-plugin:2.9.0'
    }
}

apply plugin: 'org.hidetake.ssh'
  • 试试能不能连得上服务器
remotes {
    server {
        host = '45.32.251.2'
        user = 'root'
        identity = file("${System.properties['user.home']}/.ssh/id_rsa") // file id_rsa
    }
}

task deploy {
    doLast {
        ssh.run {
            session(remotes.server) {
                execute 'service nginx status'
            }
        }
    }
}

然后执行 ./gradlew deploy 命令,构建成功。就是这么简单!

当然可以打印一下输出。修改一下 task deploy

task deploy {
    doLast {
        ssh.run {
            session(remotes.server) {
                def result = execute 'bash blog.sh'
                println "\n==> $result"
            }
        }
    }
}

然后执行 ./gradlew deploy 命令,哗啦啦一大堆日志输出了。

到这一步,还是需要执行 8080 和 9090 分支分别合并 master 分支的更新,然后提交到远程服务器 这一步的, 而且服务器上还是需要 拉取更新然后编译两份源码生成 jar 包

还是需要再优化一下,本地生成两份 jar 包,然后使用 gradle-ssh-plugin 传上去,然后执行 blog.sh,这样就可以更快捷了。

再看看怎么弄比较好吧。



温馨提醒

为了获得更好的阅读体验,您应该使用 Chrome 浏览器访问本站!


联系站长

Email: hi@zengzhihao.pw



VULTR