发布测试环境
配置测试机
创建work账号
处于安全考虑,日常不会用root账号登录,权限太高了。
用root登录,创建work账号
adduser work
passwd work
添加work的sudo权限
whereis sudoers # 找到文件位置 /etc/sudoers
chmod u+w /etc/sudoers # 修改权限, u 表示所有者, w 表示写权限 + 表示添加
vim /etc/sudoers # 编辑该文件
# 找到     `root    ALL=(ALL)       ALL`
# 再加一行  `work    ALL=(ALL)       ALL`
chmod u-w /etc/sudoers
然后使用work登录机器。输入su,在输入root账号的密码,即可拥有超级权限。
登录信任
使用work登录机器,创建~/.ssh/authorized_keys文件。
# 修改文件夹权限
chmod 700  ~/.ssh
chmod 600  ~/.ssh/authorized_keys
将本机的id_rsa.pub内容粘贴进来。
退出重新用work登录,将不用在输入密码。
安装必备软件
以下都需要su权限
git
yum -y install git
git --version
docker
- 安装docker
- docker镜像加速
- 安装docker-compose
docker version
docker-compose --version
开放端口
开放需要的端口,否则外网无法访问该端口
- B端 FE - 80
- B端 server - 8081
- C端 - 8082
- 统计服务,收集日志 - 8083
- 统计服务 OpenAPI - 8080
- admin FE - 8085
- admin server - 8084
发布到测试机
梳理思路
- 使用github actions监听dev分支push
- 登录测试机,获取最新dev分支代码
- 重新构建镜像docker-compose build editor-server
- 重启所有容器docker-compose up -d
代码演示
新建deploy-dev.yml内容如下:
name: deploy for dev
on:
    push:
        branches:
            - 'dev' # 只针对 dev 分支
        paths:
            - '.github/workflows/*'
            # - '__test__/**' # dev 不需要立即测试
            - 'src/**'
            - 'Dockerfile'
            - 'docker-compose.yml'
            - 'bin/*'
jobs:
    deploy-dev:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v2
            - name: set ssh key # 临时设置 ssh key
              run: |
                  mkdir -p ~/.ssh/
                  # secrets.WFP_ID_RSA github里面设置的
                  echo "${{secrets.WFP_ID_RSA}}" > ~/.ssh/id_rsa
                  chmod 600 ~/.ssh/id_rsa
                  ssh-keyscan "182.92.xxx.xxx" >> ~/.ssh/known_hosts
            - name: deploy # 部署
              run: |
                  ssh work@182.92.xxx.xxx "
                    # 【注意】用 work 账号登录,手动创建 /home/work/imooc-lego 目录
                    # 然后 git clone https://username:password@github.com/imooc-lego/biz-editor-server.git -b dev (私有仓库,使用 github 用户名和密码)
                    # 记得删除 origin ,否则会暴露 github 密码
                    cd /home/work/imooc-lego/biz-editor-server;
                    git remote add origin https://wangfupeng1988:${{secrets.WFP_PASSWORD}}@github.com/imooc-lego/biz-editor-server.git;
                    git checkout dev;
                    git pull origin dev; # 重新下载最新代码
                    git remote remove origin; # 删除 origin ,否则会暴露 github 密码
                    # 启动 docker
                    docker-compose build editor-server; # 和 docker-compose.yml service 名字一致
                    docker-compose up -d;
                  "
            - name: delete ssh key # 删除 ssh key
              run: rm -rf ~/.ssh/id_rsa
远程接口测试
待测试机部署完成,即可进行远程接口测试npm run test:remote,即test.yml的内容
注意,一定要等待测试机部署完成,否则测试不通过