位置: 编程技术 - 正文

如何利用Fabric自动化你的任务

编辑:rootadmin

推荐整理分享如何利用Fabric自动化你的任务,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

首先让我们首先看一个例子。我们知道在*NIX下面,uname命令是查看系统的发行版。

可以写这样一个Fabric脚本:

将上面的脚本保存为fabfile.py,就可以通过fab命令在多个主机上执行host_type脚本了:

执行过程中可能需要你输入系统密码。

安装

如果你看到这里了,说明你开始对Fabric感兴趣了。但是上述操作在你那里无法执行,因为你还没有安装Fabric。安装Fabric很简单,可以用pip或者easy_install,也可以下载原代码安装。

任务函数

很好,安装Fabric并没有难住你。可能你已经成功的执行了前面的任务,现在让我们更深入一些。

Fabric中的任务就是一个python函数,姑且让我们称之为“任务函数”。既然是python函数,那么对函数的一些用法也适用于任务函数。比如传递参数、互相调用、返回值等等。

首先看一个传递参数的例子:

在执行任务的时候,可以通过fab的命令行参数为任务函数传递参数:

组合任务的例子如下:

Fabric提供的命令

前面我们见过了fabric.api模块中的run函数,其功能是在远端主机上执行命令。fabric.api中还提供了local函数,用于执行本地(Fabric所在的主机)命令。

如何利用Fabric自动化你的任务

如下:

类似远端命令和本地命令,Fabric也区分远端目录和本地目录。Fabric提供的对远端和本地目录的操作分别是cd和lcd。如果你用过命令行的ftp,这很容易理解。

让我们看一个例子:

上面代码的功能是进入远端的/opt/xxx目录,并创建一个README文件。

Fabric还提供了很多的命令,比如文件操作等。

管理服务器连接

前面的例子中,都需要在fab命令行参数中指定server。当要管理大量服务器时很麻烦。Fabric提供了环境变量的字典env,其中就包含了hosts字典项,可以定义需要连接的server。

如下:

也可以为每个任务单独指定要执行该任务的host列表:

这样执行 fab set_hosts mytask时,就可以为set_hosts中指定的两个host执行mytask任务了。如果你懒得写函数,在fab命令行中指定也是一样的:

为了更方便的执行批量任务,Fabric中还定义了Role,有兴趣可以阅读其官方文档。

管理SSH密码、用户、端口

尽管更推荐使用SSH公钥认证,但是Fabric还是提供了管理密码的机制。Fabric提供了两层密码。

如果你的server有相同的密码,可以在env.password中设置默认的密码;如果server密码不同,还可以在env.passwords中设置(host,password)对,为每个server设置单独的ssh密码。

上面的host字符串采用这种格式:username@hostname:port。所以,在指定ssh密码的同时,也就指定了ssh用户。同密码一样,你也可以在env.user中指定一个默认的用户。如果都没有指定,执行fab命令时会提示你输入密码。

使用Fabric,你可以管理一系列host的SSH连接(包括主机名,用户,密码),定义一系列的任务函数,然后灵活的指定在哪些host上执行哪些任务。这非常使用于需要管理大量host的场景,比如运维,私有云管理,应用自动化部署等。

总结

本文只是一篇入门文档,远没有体现出Fabric的强大。实际上,Fabric还包括大量的功能,比如Role的定义,远程交互及异常处理,并发执行,文件操作等,并且不仅仅局限于命令行方式,可以在你的应用中调用Fabric。

标签: 如何利用Fabric自动化你的任务

本文链接地址:https://www.jiuchutong.com/biancheng/384436.html 转载请保留说明!

上一篇:windows下ipython的安装与使用详解(windows ipython)

下一篇:如何在Python函数执行前后增加额外的行为(python函数的方法)

  • 简易征收怎样计提增值税
  • 年初结转增值税社保如何做账
  • 山东省注册税务师协会官网
  • 公账转法人私账的注意事项
  • 附加税计税依据文件
  • 所得税分支机构分配表怎么填
  • 滴滴发票抬头怎么填
  • 单独计价作为固定资产入账的土地为什么不计提折旧
  • 公司员工社保怎么办理的
  • 标准成本法核算方法
  • 代缴五险一金自己还需要缴纳吗
  • 没有收入的小规模纳税人可以无票入费用吗?
  • 企业增资认缴是什么意思
  • 资产负债表存货项目期末余额怎么算
  • 股权转让个人所得税如何申报
  • 小微企业利息收入增值税
  • 异地预缴企业所得税几个点
  • 如何开境外帐户
  • 个税申报表在哪下载打印
  • 高速公路通行费发票怎么开
  • 税务会计学知识点
  • 在建工程转入长期待摊费用吗
  • 小规模企业国税怎么报税
  • Proxmox ve(PVE) 显示CPU和硬盘温度、UPS信息
  • php current
  • win10待机后无法输入密码
  • 笔记本cpu温度高如何处理
  • 小程序在线反编译网页版
  • php 调试工具
  • php实现分页显示
  • php生成随机字母数字代码
  • uniapp下拉菜单
  • 怎么开通公众号微信公众平台
  • 客户多付的货款叫什么
  • python怎么学
  • php关键字描红
  • php用户登录界面代码
  • 招待费超出部分的分录
  • 期初认证相符但未申报抵扣的进项如何消除
  • 研发支出什么时候转管理费用
  • 什么是汇算清缴申报表
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • 公对公的税票是怎么个流程
  • 代垫费用开票明细怎么写
  • html元素一般分为哪几类
  • 交易性金融资产公允价值变动计入
  • 固定资产未入账的定性依据
  • 现金流量表财务费用包括哪些内容
  • 企业如何在没有税务登记
  • 废品收入该如何开票
  • 固定资产补缴增值税怎么做帐务处理
  • 提取备用金现金流量如何填写
  • 什么是代扣代缴税收缴款凭证
  • 缴纳房产税和城镇房产税
  • 收到支付宝认证怎么做账
  • 一般纳税人农业企业免企业所得吗
  • 软件开发公司账一定按项目做吗
  • 预收租金会计分录科目
  • 限售股锁定期延长
  • 软件开发费属于研发和技术服务还是信息技术服务
  • 什么是履约义务,举例
  • 财务控制的方法和措施
  • ubuntu系统安装教程详细
  • linux 安装vs
  • 电脑xp系统如何
  • win7系统开机进不去
  • Nymse.exe - Nymse是什么进程 有何作用
  • win8谷歌浏览器出现无法访问此网站
  • Win10 Mobile 10586.107怎么更新?Lumia950/XL/550可升级
  • linux如何更改文件夹权限
  • ubuntu系统怎么安装
  • 安卓骰子游戏
  • JavaScript中getUTCSeconds()方法的使用详解
  • javascript的dom
  • unity鼠标移动控制角色旋转
  • jquery键盘事件及keycode大全
  • 细说javascript
  • 基于JAVASCRIPT实现的可视化工具是
  • jQuery模拟select实现下拉菜单功能
  • 税务官网怎么登录账号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设