阿里云服务器系列(六)使用Github action在阿里云上CICD json-server

安装json-server

json-server需要node环境才能运行,所以需要检查本地是否安装node,使用node -v查看本地环境是否安装,如果安装会提示版本,如果未安装则报错。

npm install -g json-server

阿里云服务器系列(六)使用Github action在阿里云上CICD json-server_第1张图片
查看json-server是否安装成功:

json-server --help

阿里云服务器系列(六)使用Github action在阿里云上CICD json-server_第2张图片
则安装成功
可以尝试写一个json 文件:db.json

{
  "data": [
    {
      "title": "博物馆",
      "address": "成都",
      "date": "2021年9月8日"
    },
    {
      "title": "青城山",
      "address": "成都",
      "date": "2021年9月9日"
    }
  ]
}

然后在同一路径执行

json-server --watch db.json --port 5000

阿里云服务器系列(六)使用Github action在阿里云上CICD json-server_第3张图片
这样我们就有了一个mock的数据来源

安装pm2

PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。

 npm install pm2 -g

在这里插入图片描述
安装成功

创建一个json文件

vim process.json

内容是:

{
  "apps": [
    {
      "name": "mock-api",
      "script": "json-server",
      "args": "--watch /usr/share/nginx/html/data/db.json --port 5000"
    }
  ]
}

其中script表示我们想要执行的命令,args指具体的参数,注意这里的路径需要使用绝对路径,跟我们刚才执行json-server --watch db.json --port 5000的部分一样。

在同一路径执行pm2:

pm2 start process.json

阿里云服务器系列(六)使用Github action在阿里云上CICD json-server_第4张图片
可以看到pm2成功起起来啦

配置Nginx

前情提要:阿里云服务器系列(四)配置Nginx

我们希望pm2 mock的数据会被代理,编辑Nginx配置文件:

vim /usr/local/nginx/conf/nginx.conf
location /data {
        rewrite /data/(.*) /$1 break;
        proxy_pass http://localhost:5000;
         }

这样我们pm2起的5000端口就会被代理到"/data"

配置Github action

前情提要:阿里云服务器系列(五)使用Github Action发布项目到阿里云
ci.yaml文件中添加:

      # deploy data to aliyun
      - name: deploy mock data to aliyun server
        uses: easingthemes/[email protected]
        env:
          SSH_PRIVATE_KEY: ${{ secrets.ALIYUN_SERVER_ACCESS_TOKEN }}
          ARGS: "-avzr --delete"
          SOURCE: "db.json"
          REMOTE_HOST: ${{ secrets.ALIYUN_SERVER_HOST }}
          REMOTE_USER: ${{ secrets.ALIYUN_REMOTE_USER }}
          TARGET: ${{ secrets.ALIYUN_DATA_TARGET }}
      # start json-server
      - name: restart json-server
        uses: appleboy/ssh-action@master
        with:
         host: ${{ secrets.ALIYUN_SERVER_HOST }}
         username: ${{ secrets.ALIYUN_REMOTE_USER }}
         key: ${{ secrets.ALIYUN_SERVER_ACCESS_TOKEN }}
         script: |
          cd ${{ secrets.ALIYUN_DATA_TARGET }}
          pm2 restart process.json

第一个操作是把db.json文件推送到服务器指定的目录中
第二个操作是进入目标路径,然后执行pm2
这里是重启pm2的操作:pm2 restart process.json

完结撒花

你可能感兴趣的:(阿里云,服务器,github)