Fabric 自动化部署(套娃)的终极方案

简介: Fabric 自动化部署(套娃)的终极方案

Fabric 自动化部署(套娃)的终极方案

这次想跟大家分享的是Fabric,原因是,之前我的博客都是使用Hexo来生成的,Hexo是一个静态的博客渲染框架,是基于node.js的。上手难度>一般,通过托管的github,很快每个人都可以拥有一个美观的静态博客,类似这样(moshiwei.github.io)青涩又中二的大学时光。

最近发现了新的hugo,是基于Go的静态博客框架,号称目前最快。

既然是静态博客,那就追求沉浸式的写作,如果能在任何地方,完成写作,一键部署完成渲染,这才是沉浸式写作体验。为了追求这种沉浸,开

始学习Fabric。

本地远程,两个扳手

注意,现在的fabric其实是属于fabric2的release了,没有和fabric1.x达到完全统一的功能开发和升级。有些已经被优化,或者删除了,Invoke也单独剥离出来了,Invoke的前身就是fabric1.x他们的联系和爱恨情仇,文档也写了,有时间可以看看。

Fabric提到,fabric是由其他几个库组成了,但在顶部封装了自己的层,用户的依赖大部分直接从fabric包种导入,但有时候也可以从invoke和paramiko导入

Invoke and Paramiko

这两个包我要着重介绍一下。

  • Invoke,实现了命令行解析,组织任务,和运行shell命令,主要任务就是在本地执行命令。(我还为了熟悉他单独写了一篇介绍文章,包含>实例)
  • paramiko,实现了中低层的SSH基本功能,SSH链接,SFTP会话,SSH key的管理等(可以配置免密登录)

是不是很有趣,fabric套娃了一个强力的本地助手和一个强力的远程助手

Fabric做了什么?

  1. 继承了Invkoe的context和command-runner,将他们包装在paramiko的原始接口中,
  2. 使用了Paramiko的ssh_config解析机制拓展了Invoke的配置系统;
  3. 实现了自己的高级接口,比如端口转发,上下文管理器

由于我只使用过Paramiko做过一些自动化任务(Paramiko可以实现到远程server的shell命令,密码登录,免密登录,sftp文件传输,非常好用>,唯一的不好就是如果需要对标准输出,标准错误做解析的话,需要自己进一步封装,稍后介绍Fabric其实做到了这一点)。Invoke没用过,但

看上去fabric让他们相互成就了,很强。

简单实例

最基本的用例就是利用Fabric到远程server执行shell命令,然后分析执行的结果,默认情况下,远程终端的打印会直接显示在你的终端上,也>就是说远程的stdout.decode()会直接返回(起码节省几行代码)。

>>> from fabric import Connection
>>> c = Connection('web1')
>>> result = c.run('uname -s')
Linux
>>> result.stdout.strip() == 'Linux'
True
>>> result.exited
0
>>> result.ok
True
>>> result.command
'uname -s' 
>>> result.connection
<Connection host=web1>
>>> result.connection.host
'web1'

Connection的其他实例化例子

Connection(host='web1', user='deploy', port=2202)

Connection('deploy@web1:2202')

小结

其实官网把这个介绍放在最前面我觉得很好,因为可能很多人做过这两个前置任务,对内容和用法都很熟悉,对于快速入手fabric有很大的帮助

,后面我会介绍常用功能的fabric实现

reference

https://docs.fabfile.org/en/2.6/getting-started.html#

https://hexo.io/

https://gohugo.io/


相关文章
|
1月前
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
55 4
|
3月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
159 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
3月前
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
298 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
3月前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
311 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
3月前
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
190 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
3月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
148 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
6月前
|
机器学习/深度学习 数据采集 运维
高效处理异常值的算法:One-class SVM模型的自动化方案
高效处理异常值的算法:One-class SVM模型的自动化方案
217 1
|
6月前
|
运维 监控 测试技术
ansible 自动化运维监控方案
本文介绍如何利用ansible实时或自动采集受控主机的信息
|
6月前
|
数据采集 Web App开发 前端开发
前端自动化UI测试的完整方案
前端自动化UI测试的完整方案
759 0
|
算法 测试技术 Shell
基于Fastbot的移动端自动化测试方案
使用火山引擎来实现移动端的Monkey测试
903 0
基于Fastbot的移动端自动化测试方案
下一篇
无影云桌面