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)

    相关推荐

    • 张飞穿针的歇后语是什么,歇后语,张飞穿针下一句是

      技术张飞穿针的歇后语是什么,歇后语,张飞穿针下一句是张飞穿针——大眼瞪小眼张飞穿针的歇后语是什么。 附:“张飞系列”歇后语 张飞吃豆芽——小菜一碟 张飞穿针——大眼瞪小眼 张飞使计谋——粗中有细 张飞卖针——人强货扎手

      生活 2021年10月26日
    • 野心勃勃是什么意思,“雄心壮志”是什么意思

      技术野心勃勃是什么意思,“雄心壮志”是什么意思远大的理想和抱负,宏伟的志愿野心勃勃是什么意思。出处:朝代:晋朝作者:陆机原文:《吊魏武帝文》:雄心摧于弱情,壮图终于哀志。白话释义:雄心挫败在弱情,壮图最终在哀志。成语用法

      生活 2021年10月24日
    • 企业该如何搭建大数据分析平台

      技术企业该如何搭建大数据分析平台本篇文章为大家展示了企业该如何搭建大数据分析平台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  在如今这个高速发展的信息化时代,一切都在转化为数

      攻略 2021年12月13日
    • 如何使用attrs来告别Python中的样板

      技术如何使用attrs来告别Python中的样板如何使用attrs来告别Python中的样板,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在

      攻略 2021年10月26日
    • 家中养什么花好,室内适合养哪种带香味的植物

      技术家中养什么花好,室内适合养哪种带香味的植物阳台花园菜园为您解答家中养什么花好。室内适合栽种哪些有香味的植物?在家里养些花花草草,调节气氛,是一件非常有雅兴的事。如果养护的花卉长势旺盛,开花繁多而又自带香气,可以为家里

      生活 2021年10月21日
    • 大头菜的腌制方法,大头菜怎么腌制脆爽好吃

      技术大头菜的腌制方法,大头菜怎么腌制脆爽好吃大头菜,其实就是“甘蓝”,也叫圆白菜,我看好多朋友都分辨不出什么是大头菜大头菜的腌制方法?在我们北方地区,通常会将“甘蓝”称作大头菜,这只是一种当地的叫法,因为甘蓝的形状很圆,

      生活 2021年10月23日