Hexo博客自动更新到1panel
SSH执行拉取
下面实现通过Github action,链接服务器SSH,并在服务器中执行拉取的命令。
获取密钥密码
实现1Panel本地静态文件自动更新,建议使用密钥登录,安全性更高,首先在1Panel中的密钥信息,生成密码和密钥,以便于后面登录:
添加变量
此次添加变量较多,有:SERVER_IP,USERNAME,PASSPHRASE,KEY,PORT五个变量,如下:
- SERVER_IP:服务器IP
- USERNAME:SSH链接用户名,一般为root
- PASSPHRASE:密钥密码,用来提升强度用
- KEY:密钥
- PORT:SSH登录端口,一般为22
克隆仓库
此时,需要在服务器手动克隆一次仓库,这样才能获得git配置,后面才可以通过直接在目录下git pull实现增量拉取,相比于克隆一个新的仓库,速度更快。
先创建静态仓库网站,比如yuqi.im,最终的静态目录如下:
在任意目录下克隆一次Blog静态资源仓库,因为1Panel不支持自定义部署目录,所以需要将克隆下来的文件夹内的所有文件,包括.git文件夹,复制到index文件夹内,或者直接在index目录内克隆,这样才能确保后续可以直接在index文件夹内,执行拉取命令,实现文件更新。
如果在前面你选择的是github存储构建产物静态文件,你可以用ghproxy之类的镜像拉取,后面git pull也会走这个链接,但是不太建议,因为一般这种镜像都不太稳定,可能需要频繁更换。
添加工作流
下面就可以修改action实现推送时自动拉取了,在部署的下方添加另一个工作流:
1 | - name: 服务器执行拉取命令 |
再次尝试修改并触发,如果一切正常,仓库文件自动触发推送到服务器应该就实现了!
在最下面,这里采用了强制拉取,并且只保留了深度为一的拉取记录,这样可以防止由于文件冲突导致可能拉取不下来的问题,并且控制了拉去的日志文件大小。
参考出处
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 与亓のBlog!
评论