手把手带你写一个 Web 框架
叶剑峰
腾讯高级工程师,前滴滴技术专家
22731 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
特别放送 (1讲)
手把手带你写一个 Web 框架
15
15
1.0x
00:00/00:00
登录|注册

28|SSH:如何生成发布系统让框架发布自动化?

执行前端或后端回滚命令
回滚版本号
上传部署文件夹并执行前置和后置shell
编译前后端
上传部署文件夹并执行前置和后置shell
编译后端
上传部署文件夹并执行前置和后置shell
编译前端文件到部署文件夹
创建部署文件夹
SSHService接口
部署回滚
部署全部
部署后端
部署前端
SSHConfig
SSHOption
服务协议
使用client做各种操作
使用ssh.Dial创建client
创建ssh.Client数据结构
ssh库的使用
自动化运维配置框架ansible
熟练掌握Golang对于SSH、SFTP等库的操作
实现自动化部署
部署回滚
部署后端服务
自动化部署
SSH服务的封装
Golang中如何SSH连接远端的服务器
思考题
小结
验证
SSH服务
SSH:如何生成发布系统让框架发布自动化?
参考文章

该思维导图由 AI 生成,仅供参考

你好,我是轩脉刃。
在前面的课程中,我们基本上已经完成了一个能同时生成前端和后端的框架 hade,也能很方便对框架进行管理控制。下面两节课,我们来考虑框架的一些周边功能,比如部署自动化。
部署自动化其实不是一个框架的刚需,有很多方式可以将一个服务进行自动化部署,比如现在比较流行的 Docker 化或者 CI/CD 流程。
但是一些比较个人比较小的项目,比如一个博客、一个官网网站,这些部署流程往往都太庞大了,更需要一个服务,能快速将在开发机器上写好、调试好的程序上传到目标服务器,并且更新应用程序。这就是我们今天要实现的框架发布自动化。
所有的部署自动化工具,基本都依赖本地与远端服务器的连接,这个连接可以是 FTP,可以是 HTTP,但是更经常的连接是 SSH 连接。因为一旦我们购买了一个 Web 服务器,服务器提供商就会提供一个有 SSH 登录账号的服务器,我们可以通过这个账号登录到服务器上,来进行各种软件的安装,比如 FTP、HTTP 服务等。
基本上,SSH 账号是我们拿到 Web 服务器的首要凭证,所以要设计的自动化发布系统也是依赖 SSH 的。

SSH 服务

那么在 Golang 中如何 SSH 连接远端的服务器呢?有一个ssh库能完成 SSH 的远端连接。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了如何利用SSH实现框架发布自动化的方法。作者首先讨论了在Golang中连接远程服务器的SSH服务,并提供了使用golang.org/x/crypto/ssh库进行SSH连接的示例代码。随后,作者设计了自动化部署的命令和配置文件,包括一级命令`./hade deploy`和四个二级命令,以及部署配置文件的具体内容。此外,文章还详细介绍了部署前端的过程,包括创建部署文件夹、编译前端文件、上传部署文件夹并执行前置和后置的shell。作者还解释了部署文件夹的重要性以及如何使用SSH服务进行文件传输和将本地文件夹同步到远端文件夹。整体来看,本文内容丰富,涵盖了SSH服务的使用、自动化部署的设计思路以及具体实现细节,对读者了解自动化部署和SSH服务具有一定的指导意义。文章还介绍了部署后端、部署全部和部署回滚的命令,以及对应的实现细节。最后,作者提出了思考题,鼓励读者学习自动化运维配置框架ansible,并分享学习心得。整体而言,本文对于想要学习自动化部署和SSH服务的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • Vincent
    之前用到的makefile较多,想问老师如何选择呢,是集成到hade中还是在makefile中呢

    作者回复: 我倾向于在hade中做命令。因为hade引入了cobra,命令行功能可以实现更丰富,比如交互等。

    2021-11-21
    2
  • taoist
    如果在Windows下运行部署到Linux平台,uploadFolderToSFTP函数里远端路径的filepath.Join需要用filepath.ToSlash包一下转换成Unix路径格式。
    2024-01-30归属地:山东
  • 陈亦凡
    Mac cc https://github.com/messense/homebrew-macos-cross-toolchains
    2022-09-05归属地:四川
    1
  • 陈亦凡
    这里交叉编时,gspt库使用了c,需要交叉编译,网上看了一下,如果使用musl的话,运行环境也要安装,请教下除了docker、musl还有别的方案吗?
    2022-09-05归属地:四川
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部