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. 打开微信app,登录,进入我的页面中。2. 在我的页面中选择“支付”,点击“零钱”,在零钱界面进入

      生活 2021年10月25日
    • 怎么使用span解决数组退化和越界访问

      技术怎么使用span解决数组退化和越界访问本篇文章给大家分享的是有关怎么使用span解决数组退化和越界访问,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。数组

      攻略 2021年11月10日
    • AspNetCore应用注意哪些点

      技术AspNetCore应用注意哪些点今天就跟大家聊聊有关AspNetCore应用注意哪些点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。背景已经有很多文章记录了

      攻略 2021年11月18日
    • 初探卡特兰数及有关问题

      技术初探卡特兰数及有关问题 初探卡特兰数及有关问题星期日,哥参加了上大学以来的第一次计算导论与程序设计的上机考试,可是最后一道题没AC。
      这道题给了卡特兰数的一种通项公式,让你求卡特兰数的第n项。
      从考

      礼包 2021年11月26日
    • JavaScript是怎么运行的

      技术JavaScript是怎么运行的这篇文章主要讲解了“JavaScript是怎么运行的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript是怎么运行的”吧

      攻略 2021年11月20日
    • 首页css

      技术首页css 首页cssbody{ background-color: #CCCCCC;}.content ul{ padding-left: 0;}.content ul li{ display:

      礼包 2021年10月27日