Python的系統批量運維管理器Fabric介紹

一 點睛

Fabric是基於Python(2.5及以上版本)實現的SSH命令行工具,簡化了SSH的應用程序部署及系統管理任務,它提供了系統基礎的操作組件,可以實現本地或遠程shell命令,包括命令執行、文件上傳、下載及 完整執行日誌輸出等功能。Fabric在paramiko的基礎上做了更高一層的封裝,操作起來會更加簡單。

Fabric官網地址爲: http://www.fabfile.org

二 Fabric的安裝

[root@localhost pymaintain]# pip install fabric==1.8.2

注意:如果要在windows下運行,需要參考下面文章,安裝pycrypto

windows下安裝報錯解決方法

https://blog.csdn.net/qq_38677814/article/details/79437553

三 入門示例

1 代碼

#coding=utf-8
#!/usr/bin/env python
from fabric.api import run
def host_type():    #定義一個任務函數,通過run方法實現遠程執行‘uname -s’命令
    run('uname -s')

2 結果

[root@localhost pymaintain]# fab -H 192.168.0.101 host_type
[192.168.0.101] Executing task 'host_type'
[192.168.0.101] run: uname -s
[192.168.0.101] out: Linux
[192.168.0.101] out:


Done.

3 說明

其中,fab命令引用默認文件名爲fabfile.py,如果使用非默認文件 名稱,則需通過“-f”來指定,如:fab -H 192.168.0.101 host_type.py host_type。

如果管理機與目標主機未配置密鑰認證信任, 將會提示輸入目標主機對應賬號登錄密碼。

四 fab的常用參數

fab作爲Fabric程序的命令行入口,提供了豐富的參數調用,命令格式如下:

fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...]

下面列舉了常用的幾個參數,更多參數可使用fab-help查看。

  • -l:顯示定義好的任務函數名; 
  • -f:指定fab入口文件,默認入口文件名爲fabfile.py; 
  • -g:指定網關(中轉)設備,比如堡壘機環境,填寫堡壘機IP即可;
  • -H:指定目標主機,多臺主機用“,”號分隔; 
  • -P:以異步並行方式運行多主機任務,默認爲串行運行; 
  • -R:指定role(角色),以角色名區分不同業務組設備; 
  • -t:設置設備連接超時時間(秒); 
  • -T:設置遠程主機命令執行超時時間(秒); 
  • -w:當命令執行失敗,發出告警,而非默認中止任務。

有時候我們甚至不需要寫一行Python代碼也可以完成遠程操作, 直接使用命令行的形式,例如:

[root@localhost pymaintain]# fab -p 123456 -H 192.168.0.101,192.168.0.120 -- 'uname -s'
[192.168.0.101] Executing task '<remainder>'
[192.168.0.101] run: uname -s
[192.168.0.101] out: Linux
[192.168.0.101] out:

[192.168.0.120] Executing task '<remainder>'
[192.168.0.120] run: uname -s
[192.168.0.120] out: Linux
[192.168.0.120] out:


Done.
Disconnecting from 192.168.0.120... done.
Disconnecting from 192.168.0.101... done.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章