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)

    相关推荐

    • 火柴英文,火柴有哪几种,例如防水火

      技术火柴英文,火柴有哪几种,例如防水火日用火柴(普通火柴)日用火柴 按包装外形和所用原料有木梗火柴火柴英文、蜡纸梗火柴和书式火柴3种。①木梗火柴:用质地比较松软的木材制成方形截面的火柴梗,梗端沾上石蜡和药浆,干燥后装于木

      2021年10月26日
    • 怎么为机器学习工程设计Python接口

      技术怎么为机器学习工程设计Python接口本篇内容主要讲解“怎么为机器学习工程设计Python接口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么为机器学习工程设计Pyth

      攻略 2021年11月26日
    • 香港服务器迁移网站要注意什么香港服务器租用

      技术香港服务器迁移网站要注意什么香港服务器租用将网站迁移到新的香港服务器需要大量规划。一些主要原因是磁盘空间不足、客户服务差以及服务器经常出现故障。起初,转向新的网络香港机房服务商可能看起来很棒,但实际上,不同的原因所需

      礼包 2021年11月3日
    • MySQL慢SQL采集方案分析

      技术MySQL慢SQL采集方案分析本篇内容主要讲解“MySQL慢SQL采集方案分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL慢SQL采集方案分析”吧!作为一名M

      攻略 2021年11月5日
    • 写Java程序最容易犯的21种错误是怎样的

      技术写Java程序最容易犯的21种错误是怎样的写Java程序最容易犯的21种错误是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。写Java程序最容易犯

      攻略 2021年11月16日
    • 如何分析Spring事务隔离级别

      技术如何分析Spring事务隔离级别本篇文章给大家分享的是有关如何分析Spring事务隔离级别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 事务隔离级别

      攻略 2021年12月2日