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)

    相关推荐

    • C#操作Excel实现的实例分析

      技术C#操作Excel实现的实例分析C#操作Excel实现的实例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#操作Excel是怎么样执行的呢?我们在

      攻略 2021年11月24日
    • jquery如何使得div消失

      技术jquery如何使得div消失这篇文章主要讲解了“jquery如何使得div消失”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何使得div消失”吧!

      攻略 2021年11月17日
    • 如何使用HwCameraKit接入相机人像模式

      技术如何使用HwCameraKit接入相机人像模式这篇文章主要介绍“如何使用HwCameraKit接入相机人像模式”,在日常操作中,相信很多人在如何使用HwCameraKit接入相机人像模式问题上存在疑惑,小编查阅了各式

      2021年11月13日
    • 火星距离地球多远,火星距离地球的距离是多少光年

      技术火星距离地球多远,火星距离地球的距离是多少光年火星与地球的最近距离是5565万千米,即约0.00000588光年;最远约4亿千米,即约0.000042光年.火星距地球的距离火星距离地球多远,近距离约为5500万千米,

      生活 2021年10月27日
    • css和html的区别有哪些

      技术css和html的区别有哪些这篇文章主要介绍“css和html的区别有哪些”,在日常操作中,相信很多人在css和html的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css

      攻略 2021年11月9日
    • 怎样用Java final 关键字

      技术怎样用Java final 关键字怎样用Java final 关键字,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面好好地讲一讲 final 关键字,

      攻略 2021年12月2日