美文网首页
Fabric 自动化部署(套娃)的终极方案

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

作者: 糖醋沼跃鱼 | 来源:发表于2022-03-31 20:24 被阅读0次

    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/

    相关文章

      网友评论

          本文标题:Fabric 自动化部署(套娃)的终极方案

          本文链接:https://www.haomeiwen.com/subject/gpxzjrtx.html