
使用 expect 自动化部署项目
前言
最近公司需要接手几个 .Net Core 后台项目,由于之前从来没有接触过 C# 和 .Net 开发,花了一些时间了解。后台开发的思维很多都是互通的,之前也有 PHP 和少许 Java 后台开发的经验,所以上手不需要太久,主要是业务逻辑这块需要花些功夫。但是每次部署到服务器时感觉不是很方便,每次都需要通过 dotnet publish 命令发布项目到本地,然后将发布的项目文件通过 ftp 上传到服务器,再 ssh 到服务器,将 supervisorctl 项目重启。虽然都很简单,但是每次部署都需要重复的操作,也很麻烦。程序员都是懒惰的,所用想着用将这些操作弄成自动化写到脚本,执行脚本就完成部署。最后了解到 expect 神器,通过 expect 可以将上面操作通过一个脚步完成。
基本信息
1 | 开发环境: macOS |
expect
expect 是一个控制自动交互式脚本的工具,用非交互的方式实现了所有交互式的功能。相关文档可以参考 http://xstarcd.github.io/wiki/shell/expect.html
通过 shell
和 expect
写了一个自动化部署到脚本。以下为全部代码,部署分本地部署和线上部署,通过参数传递。
整个代码主要分两块:
1、通过 sftp
上传编译之后的文件到服务器
2、通过 ssh
连接到服务器,然后重启 supervisor
1 |
|
自动部署
通过 VSCode 写两个 task
,任务一负责编译并将文件发布到本地,任务二则是调用该脚本,下次编辑完直接调用 VSCode task 即可,以下为 VSCode Task 配置
1 | { |
感谢您的阅读,本文由 Joe 版权所有。如若转载,请注明出处:Joe(http://aidevjoe.github.io/2019/03/19/使用-expect-自动化部署项目/)