gpt4 book ai didi

python三大神器之fabric使用教程

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python三大神器之fabric使用教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

fabric 是一个python包 是一个基于ssh的部署工具包 。

通常用来对网站 微服务等等的批量部署 例如 我有5台线上服务器 可以通过一台对着5台分发,实现自动部署的目的.

简单介绍下 fabric的常用命令 。

常用命令  。

?
1
2
3
4
lcd( dir ): 进入本机某目录
local(cmd): 本机上执行命令
cd( dir ): 进入服务器某目录
run(cmd):服务器上执行命令

Fabric 。

Fabric是一个python的远程执行shell的库,同时它也是一个命令行工具。它提供了丰富的同 SSH 交互的接口,可以用来在本地或远程机器上自动化、流水化地执行 Shell 命令.

安装Fabric 。

Fabric的官网是 www.fabfile.org ,源码托管在 Github 上。你可以clone源码到本地,然后通过下面的命令来安装。但是在源码安装前,你必须先将Fabric的依赖包 Paramiko 装上.

python setup.py develop 。

同时也可以使用pip安装,因为fabric是python的一个第三方库,只需一条命令即可:

 pip install fabric 。

python3 安装时使用的是fabric3 :( 安装fabric3之前,需要先卸载fabric.) 。

  1. # fabric3 支持 python3
  2. pip uninstall fabric
  3. pip3 install fabric3

fabric 不只是一个Python 模块,fabric 还是一个命令行工具,可以使用fab -h查看帮助信息 。

?
1
2
3
4
E:\my_data\hk - project>fab - V
Fabric3 1.14 .post1
Paramiko 2.4 . 2
E:\my_data\hk - project>fab - h

入门使用 。

fabric的使用方式是通过编写一个python文件,该文件中包含多个函数,然后使用fab命令调用这些函数,做相应的任务。这些函数在fabric中称为task.

?
1
2
3
4
5
6
# filename:abc.py​
  from fabric.api import *
  def task1():
    print ( "hello" )
  def hello():
    print ( "hello world" )

写好这个python文件后,在当前目录的路径下使用fab工具执行文件中的函数 。

?
1
2
3
[root@localhost python文件所在的目录] # fab -f abc.py hello
  hello world
  # -f 指定fabfile文件,默认为fabfile.py,若文件名是当前目录下的fabfile.py则无需指定

任务参数 。

此时你可能会想,如果这个函数有参数怎么办呢?应该如何传递参数给函数呢?Fabric 支持 Shell 兼容的参数用法: <任务名>:<参数>, <关键字参数名>=<参数值>,... 用起来就是这样.

?
1
2
def hello(name = "world" ):
   print ( "hello {}" . format (name))

我们可以这样去指定参数 。

?
1
2
3
$ fab hello:name = Jeff  # 或者 fab hello:Jeff
  hello Jeff
  ​Done.

小试牛刀 。

现在我们假设需要写一个fabfile.py,能够在每次web项目代码更新后使用git提交并远程服务器拉去最新代码并运行,需求描述清楚了,开干吧! 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# fabfile.py
  # 这里建议将该文件放入项目文件的根目录中,方便git提交
  from fabric.api import local
  def test():
    local( 'python manage.py test myapp' )
    # 测试是否能正常运行
  def commit():
    local( 'git add -p && git commit -m "for test"' )
  def push():
    local( 'git push' )
  def prepare_deploy():
    test()
    commit()
    push()

这个 prepare_deploy 任务可以单独调用,也可以调用更细粒度的子任务.

故障 。

Fabric 会检查被调用程序的返回值,如果这些程序没有干净地退出,Fabric 会终止操作。我们什么都不用做,Fabric 检测到了错误并终止,不会继续执行 commit 任务.

我们也可以对故障进行一定的处理和判断 。

?
1
2
3
4
5
6
7
8
9
from fabric.api import local, settings, abort
  from fabric.contrib.console import confir
  def test():
    with settings(warn_only = True ):
      result = local( './manage.py test my_app' , capture = True )
      # result.return_code返回码(0/1)和result.failed
    if result.failed and not confirm( "Tests failed. Continue anyway?" ): # confirm判断用户输入
      abort( "Aborting at user request." ) # 指定错误退出信息
  # 一个名为 warn_only 的设置(或着说 环境变量 ,通常缩写为 env var )可以把退出换为警告,以提供更灵活的错误处理。如果设置为False,则一条命令运行失败会就会退出,不再执行后面的命令。

建立连接 。

终于到了连接了,这个工具主要作用就是在远程执行命令呀,学会了这个,我们就可以在本地执行远程服务器的命令了.

?
1
2
3
4
5
from fabric.api import *
  env.hosts = [ 'root@192.168.10.11:22' ]​
  def deploy():
    run( 'ls' ) # run()用于执行远程命令,local()执行本地命令
  # 执行后会提示你输入密码,输入密码即可

至此,入门结束,后续还有更多api的讲解,敬请关注! 。

参考链接:

fabric官方中文文档: https://fabric-chs.readthedocs.io/zh_CN/chs/tutorial.html 。

总结 。

以上所述是小编给大家介绍的python三大神器之fabric使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢! 。

原文链接:https://www.cnblogs.com/welisit/p/10995357.html 。

最后此篇关于python三大神器之fabric使用教程的文章就讲到这里了,如果你想了解更多关于python三大神器之fabric使用教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com