生活中的Design.

TravisCi/Gradle部署SpringBoot项目到aliyun ECS

字数统计: 450阅读时长: 1 min
2020/03/23 Share

项目新建

新建一个Springboot项目,IDEA/SpringInitializer或者其他方法建立一个项目,将项目上传到Github,因为TravisCI和Github配合食用风味更佳😁

登录到TravisCI官网,可以直接用Github登录,然后给该项目配置TravisCI,网上教程一大把我这就不赘述了,我们主要看下.travis.yml文件内容,以及ssh登录到我们的阿里云ECS的实现步骤(主要是为了scp我们的build生成的jar包)

Worker环境

先确定travis的worker配置,java语言,jkd8,其他也就不用配置了,默认是ubuntu xenial,没什么特殊要求就用这个了

1
2
3
4
language: java
jdk:
- openjdk8

目标ECS

先给ECS绑定一个秘钥对,可以看看阿里云的文档,然后先用自己的电脑登陆一次ECS,然后安装下travis-cli工具

1
ssh -i pem文件路径 用户名@ecs的ip

travis-cli需要ruby环境,先用brew安装下gem(ruby的包管理器)

1
brew install ruby@2.4

再用gem安装travis-cli

1
gem install travis 

接着登录到travis,用你的Github登录就行,

1
travis login

进入你的项目根目录,运行命令,按提示操作会在你的.travis.yml文件中生成一段openssl命令,并生成一个id_rsa.enc文件

1
travis encrypt-file ~/.ssh/id_rsa --add

这个文件需要被纳入到版本控制中,travis会通过它解密出必要的ssh身份信息

基本成果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
language: java
branches:
only:
- master
jdk:
- openjdk8
addons:
ssh_known_hosts: "$SERVER_IP:$SSH_PORT"
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- "$HOME/.gradle/caches/"
- "$HOME/.gradle/wrapper/"
before_install:
- openssl aes-256-cbc -K $encrypted_c1911571b64a_key -iv $encrypted_c1911571b64a_iv
-in id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host $SERVER_IP\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- chmod +x ./gradlew
install:
- "./gradlew assemble"
after_success:
- echo $PATH
- scp -p $SSH_PORT build/libs/demo-0.0.1-SNAPSHOT.jar root@$SERVER_IP:/tmp/

CATALOG
  1. 1. 项目新建
    1. 1.1. Worker环境
    2. 1.2. 目标ECS
    3. 1.3. 基本成果