python中fabric模块安装报错(pythonfabric怎么使用)

技术python中Fabric模块怎么用这篇文章给大家分享的是有关python中Fabric模块怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基础一:#!/usr/bin/env pyt

这篇文章给大家分享的是有关大蟒中构造模块怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

基础一:#!/usr/bin/env python

来自fabric.api导入*

env.user='root '

env.hosts=['218.78.186.162 ',' 125.208.12.56']

环境。密码={ ' root @ 218。78 .186 .162:22 ' : ' XXX ',' root @ 125。208 .12 .56:22 ' : ' XXXX @ 0 ' }

@runs_once ####runs_once代表只执行一次

def local_task():

本地('主机名')# # # #本地本地任务,不会嘘远程执行

def remote_task():

带cd('/tmp/'):

运行('主机名')# # #运行远程命令

@task ####task标记只有去函数可以调用远程任务函数

def go():

远程任务()

测试

[root @ hostnfsd :/soft/python/py auto/第七章/fab]$ fab-f简单1 _ test。py远程任务# # #直接调用远程任务函数失败

警告:找不到命令:

远程任务

可用命令:

[root @ hostnfsd :/soft/python/py auto/第七章/fabric]$ fab-f简单1 _ test。py本地_任务# # #有工作表标识时直接调用当地的函数失败,meitask时才能直接调用当地的函数

警告:找不到命令:

本地任务

可用命令:

g

o

  • [root@hostnfsd :/soft/python/pyauto/第七章/fabric]$ fab -f simple1_test.py go         通过go函数调用remote_task函数

  • [218.78.186.162] Executing task 'go'

  • [218.78.186.162] run: hostname

  • [218.78.186.162] out: localhost.localdomain

  • [218.78.186.162] out:

  • [125.208.12.56] Executing task 'go'

  • [125.208.12.56] run: hostname

  • [125.208.12.56] out: host-192-168-1-56

  • [125.208.12.56] out:

  • Done.

  • Disconnecting from 218.78.186.162... done.

  • Disconnecting from 125.208.12.56... done.

  • 有时我们希望直接用脚本就可以执行,可以如下更改

    1. #!/usr/bin/env python

    2. from fabric.api import *

    3. env.user='root'

    4. env.hosts=['218.78.186.162','125.208.12.56']

    5. env.passwords={ 'root@218.78.186.162:22':'ESBecs00','root@125.208.12.56:22':'eRaMUnA612@0'}

    6. @runs_once

    7. def local_task():

    8.     local("hostname")

    9. def remote_task():

    10.     with cd("/tmp/"):

    11.         run("hostname")

    12. def go():
          execute(remote_task)           ####execute表示在脚本内执行即可

    13.     execute(local_task)
      go()

    直接运行即可
    [root@hostnfsd :/soft/python/pyauto/第七章/fabric]$ python simple1_test.py

    基础2:

    1. #!/usr/bin/env python

    2. from fabric.api import *

    3. env.user='root'

    4. env.hosts=['218.78.186.162','125.208.12.56']

    5. env.passwords={ 'root@218.78.186.162:22':'XXX','root@125.208.12.56:22':'XXXX@0'}

    6. @runs_once

    7. def input_raw():

    8.     return prompt("please input directory name:",default="/home")

    9. def worktask(dirname):

    10.     run("ls -l "+dirname)

    11. @task

    12. def go():

    13.     getdirname = input_raw()

    14.     worktask(getdirname)

    跳板机:

    1. #!/usr/bin/env python

    2. from fabric.api import *

    3. from fabric.context_managers import *

    4. from fabric.contrib.console import confirm

    5. env.user='root'

    6. env.gateway='218.78.186.162'

    7. env.hosts=['125.208.12.56']

    8. env.passwords={ 'root@218.78.186.162:22':'XX','root@125.208.12.56:22':'XXXX@0'}

    9. lpackpath="/home/install/lnmp0.9.tar.gz"

    10. rpackpath="/tmp/install"

    11. @task

    12. def put_task():

    13.     run("mkdir -p /tmp/install")

    14.     with settings(warn_only=True):

    15.         result = put(lpackpath, rpackpath)

    16.     if result.failed and not confirm("put file failed, Continue[Y/N]?"):

    17.         abort("Aborting file put task!")

    18. @task

    19. def run_task():

    20.     with cd("/tmp/install"):

    21.         run("tar -zxvf lnmp0.9.tar.gz")

    22.         run("ls -l")

    23. @task

    24. def go():

    25.     put_task()

    26.     run_task()

    有时需要将这些功能模板写到django中,那么我们可以将该功能封装到一个类中

    1. #!/usr/bin/env python


    2. from fabric.api import *


    3. class Student(object):


    4.         def __init__(self,user,ip):


    5.                 env.user=user


    6.                 env.hosts=[ip]


    7.                 env.password='XXX'


    8.         @runs_once


    9.         def local_task(self):


    10.                 local("hostname")



    11.         def remote_task(self):


    12.                 vhost=run("df -h")


    13.                 return vhost



    14. def yunxing(user,ip):


    15.     tom=Student(user,ip)


    16.     print execute(tom.remote_task)




    17. yunxing('root','218.78.186.162')   ###直接调用该函数传参即可

    感谢各位的阅读!关于“python中Fabric模块怎么用”这篇文章就分享到这里了,希望

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/158491.html

    (1)

    相关推荐

    • 怎样做酸菜鱼家常做法,酸菜鱼的家庭简单做法有哪些

      技术怎样做酸菜鱼家常做法,酸菜鱼的家庭简单做法有哪些家庭简单酸菜鱼做法 材料 黑鱼怎样做酸菜鱼家常做法,酸菜,泡辣椒,葱,蒜,干红辣椒,姜,花椒,生粉,鸡汤,料酒,盐,糖,生姜粉
      做法
      1、 鱼切成薄片,
      2、 加

      生活 2021年11月1日
    • mybatis日常语法有哪些

      技术mybatis日常语法有哪些mybatis日常语法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mybatis中的#和$的区别? #方式能够很大程

      攻略 2021年10月20日
    • 盘点服装设计所经常性使用的软件-----ET,中篇)

      技术盘点服装设计所经常性使用的软件-----ET,中篇) 盘点服装设计所经常性使用的软件-----ET(中篇)大家好,我是IT共享者,人称皮皮。
      前言
      今天要跟大家介绍的是关于服装设计所经常性使用的软件

      礼包 2021年11月1日
    • qt串口消息模拟器怎么实现

      技术qt串口消息模拟器怎么实现本篇内容介绍了“qt串口消息模拟器怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!/

      攻略 2021年11月30日
    • 【BA4988】853B函数,未完成)

      技术【BA4988】853B函数,未完成) 【BA4988】_853B函数(未完成)反汇编:_853B()
      {A=Lcd_WriteDataX=Lcd_XY=Lcd_Y_8714() // 00E977

      礼包 2021年12月5日
    • 投入的近义词,“尽心尽力”类似的词语有哪些

      技术投入的近义词,“尽心尽力”类似的词语有哪些竭尽全力[jiéjìnquánlì]?:形容用尽全部力量投入的近义词。
      尽心尽力[jìnxīnjìnlì]:做事非常的卖力,或为非常的卖命,以用尽了自己所有的能力。
      尽心尽责

      生活 2021年10月30日