Fabric自动化部署的简单使用

公众号回复“1”,拉你进区块链技术讨论微信群

作者:栖息暮雨

来源:CSDN

本文约1900字+,阅读(观看)需要11分钟

Fabric 使用 ssh(通过 paramiko 库)在多个服务器上批量执行任务、上传、下载。

使用前首先需要安装fabric包(我使用的系统为ubuntu16.04)

我们使用fabric部署之前,首先要花简单的几分钟写一个部署脚本(脚本名字尽量为fabfile.py),如果我们使用git pull的方式进行部署,可能只要一分钟就可以了

下面是示例代码:

运行时仅需要在命令行输入fab deploy脚本就会自动链接所有给出的服务器执行deploy函数下的命令了。如果我们还有一个叫example的函数需要执行,运行fab deploy example即可

如果创建脚本时脚本名不为fabfile.py,当然这也是可以的,但是执行脚本的命令就要修改成fab -f test.py deploy

默认情况下,当命令执行失败时,Fabric会停止执行后续命令。有时,我们允许忽略失败的命令继续执行,比如run(‘rm /tmp/example’)在文件不存在的时候有可能失败,这时可以用with settings(warn_only=True):执行命令,这样Fabric只会显示警告信息而不会中断执行。

Fabric所有的操作都是基于SSH执行的,必要时会要求用户输入密码。

管理SSH密码、用户、端口。

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

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

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

函数说明:

函数说明部分转载于Fabric远程自动化使用说明

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611B1IOWT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券