文章目录
实现效果
环境
本地环境:Mac OS
服务器环境:Ubuntu Server
步骤
生成公私钥
- 本地环境执行生成公私钥的指令。
ssh-keygen -m PEM -t rsa -b 4096
Enter file in which to save the key (/Users/zero/.ssh/id_rsa):deploy_key
- 回车,再回车。
- 生成公私钥成功。
Github 配置
- 创建项目的 Secrets。Secrets 即在 action 中可以直接引用的变量(经过加密)。
cat ~/.ssh/deploy_key
- 复制私钥内容到 Secrets 变量 - Value。(注意:BEGIN END 部分同样需要复制)
- 创建 Secrets 变量 - Name: USERNAME。用于存储登录服务器的用户名。
- 创建 Secrets 变量 - Name: HOST。用于存储登录服务器的 IP 地址。
- 最终 Github 上项目 Secrets 变量的结果。
服务器配置
- 本地查看上文生成的公钥。
cat ~/.ssh/deploy_key.pub
vim ~/.ssh/authorized_keys
代码配置
name: Depoly Action
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: ssh deploy
uses: easingthemes/[email protected]
with:
REMOTE_HOST: ${{ secrets.HOST }}
REMOTE_USER: ${{ secrets.USER }}
SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_KEY }}
SOURCE: "[部署内容路径(以项目目录为根目录)]"
TARGET: "[服务器部署位置的绝对路径]"
- name: Prepare For Django
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.DEPLOY_KEY }}
- name: Restart Django
run: ssh ${{ secrets.USER }}@${{ secrets.HOST }} "kill -HUP [Django uwsgi 进程号]"
查看日志
参考资料
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。