我是靠谱客的博主 缓慢鸭子,最近开发中收集的这篇文章主要介绍阿里云服务器系列(五)使用Github Action发布项目到阿里云创建一个GitHub action配置 secret报错bash: rsync: command not found报错 Load key “/home/runner/.ssh/deploy_key”: invalid format,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

创建一个GitHub action

在GitHub仓库选中action,创造一个action
在这里插入图片描述

name: deploy to aliyun
on:
  push:
    branches:
      - master
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # 切换分支
      - name: Checkout
        uses: actions/checkout@master
      # 下载 git submodule
      - uses: srt32/git-actions@v0.0.3
        with:
          args: git submodule update --init --recursive
      # 使用 根据自己的情况选择node版本,这里用node:15
      - name: use Node.js 15
        uses: actions/setup-node@v1
        with:
          node-version: 15
      # npm install and build
      - name: npm install and build
        run: |
          npm install
          npm run build
        env:
          CI: true
      # Deploy to aliyun
      - name: Deploy to aliyun server
        uses: easingthemes/ssh-deploy@v2.1.5
        env:
          SSH_PRIVATE_KEY: ${{ secrets.ALIYUN_SERVER_ACCESS_TOKEN }}
          ARGS: "-avzr --delete"
          SOURCE: "build/"
          REMOTE_HOST: ${{ secrets.ALIYUN_SERVER_HOST }}
          REMOTE_USER: ${{ secrets.ALIYUN_REMOTE_USER }}
          TARGET: ${{ secrets.ALIYUN_TARGET }}

这里以node15为例:

name: deploy to aliyun

这个是任务的名称,参考作用。

on:
  push:
    branches:
      - master

这部分是触发器,当发生哪些行为时,触发 Github Action 的执行。
如上配置,则是当 master 分支,发生 push 时,触发执行。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:

开始正式的构建项目了,jobs 就是工作流程,工作流程运行包括一项或多项任务。
runs-on定义了我们这项作业的运行环境,机器可以是 GitHub 托管的运行器或自托管的运行器。
steps 是步骤,每个步骤可以是运行命令或是其他操作。
最后一步,项目编译完成后,将会在项目目录的 build 下完成构建,我们只需要把这个目录下的所有文件发布到阿里云即可。

配置 secret

到服务器中,运行

 ssh-keygen -m PEM -t rsa -b 4096

一定要用PEM格式,不然会报错Load key “/home/runner/.ssh/deploy_key”: invalid format

cd ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys

将公钥写入.ssh/authorized_keys

vim ~/.ssh/authorized_keys 

vim查看,此时authorized_keys会多出密钥

cat id_rsa

将内容复制下来,来到GitHub仓库,进入 Secrets 配置
在这里插入图片描述
在这里插入图片描述
New 一个 secret,名字叫ALIYUN_SERVER_ACCESS_TOKEN,然后把刚刚复制的值放进去,保存
接着再创建几个

ALIYUN_SERVER_HOST = 阿里云服务器的地址
ALIYUN_REMOTE_USER = 阿里云user,一般是root
ALIYUN_TARGET = 目标路径

这样只要代码一push,就会自动运行action,然后构建发布到阿里云上去
成功示例
可以在GitHub 里面查看action的运行情况,如图是一个成功的例子

报错bash: rsync: command not found

这是因为服务器没有安装rsync
去安装rsync即可:

yum install rsync

报错 Load key “/home/runner/.ssh/deploy_key”: invalid format

说明ssh的key格式不匹配,可以参考上面配置 secret重新生成key,也可以将现有的转换成PEM格式:

ssh-keygen -p -f ~/.ssh/id_rsa -m pem

最后

以上就是缓慢鸭子为你收集整理的阿里云服务器系列(五)使用Github Action发布项目到阿里云创建一个GitHub action配置 secret报错bash: rsync: command not found报错 Load key “/home/runner/.ssh/deploy_key”: invalid format的全部内容,希望文章能够帮你解决阿里云服务器系列(五)使用Github Action发布项目到阿里云创建一个GitHub action配置 secret报错bash: rsync: command not found报错 Load key “/home/runner/.ssh/deploy_key”: invalid format所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部