91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中Fabric模塊怎么用

發布時間:2021-12-25 19:57:39 來源:億速云 閱讀:195 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python中Fabric模塊怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

基礎一:

  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                       ####runs_once代表只執行一次

  7. def local_task():

  8.     local("hostname")            ####local本地任務,不會ssh遠程執行


  9. def remote_task():

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

  11.         run("hostname")          ###run 遠程命令


  12. @task                            ####task標記只有go函數可以調用remote_task函數

  13. def go():

  14.     remote_task()


測試

  1. [root@hostnfsd :/soft/python/pyauto/第七章/fabric]$ fab -f simple1_test.py remote_task    ###直接調用remote_task函數失敗


  2. Warning: Command(s) not found:

  3.     remote_task


  4. Available commands:


  5.     go

  6. [root@hostnfsd :/soft/python/pyauto/第七章/fabric]$ fab -f simple1_test.py local_task   ###有task表標識時直接調用local函數失敗,meitask時才能直接調用local函數


  7. Warning: Command(s) not found:

  8.     local_task


  9. Available commands:


  10.     go

  11. [root@hostnfsd :/soft/python/pyauto/第七章/fabric]$ fab -f simple1_test.py go         通過go函數調用remote_task函數

  12. [218.78.186.162] Executing task 'go'

  13. [218.78.186.162] run: hostname

  14. [218.78.186.162] out: localhost.localdomain

  15. [218.78.186.162] out:


  16. [125.208.12.56] Executing task 'go'

  17. [125.208.12.56] run: hostname

  18. [125.208.12.56] out: host-192-168-1-56

  19. [125.208.12.56] out:



  20. Done.

  21. Disconnecting from 218.78.186.162... done.

  22. 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模塊怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆城县| 宣恩县| 沅陵县| 堆龙德庆县| 海宁市| 珲春市| 安丘市| 宁津县| 临洮县| 黎川县| 息烽县| 绥棱县| 永顺县| 新平| 武宁县| 华蓥市| 巴林右旗| 茌平县| 来宾市| 彭山县| 湟中县| 岑巩县| 蒙山县| 博罗县| 沂南县| 临邑县| 康平县| 特克斯县| 湾仔区| 盐亭县| 龙口市| 伊吾县| 普定县| 确山县| 资讯| 扎囊县| 太和县| 开阳县| 安图县| 凤山县| 平安县|