1. 程式人生 > >Python自動化運維工具fabric的安裝

Python自動化運維工具fabric的安裝

Python自動化運維工具fabric的安裝

轉:https://www.cnblogs.com/freeweb/p/5445749.html

  使用shell命令進行復雜的運維時,程式碼往往變得複雜難懂,而使用python指令碼語言來編寫運維程式,就相當於開發普通的應用一樣,所以維護和擴充套件都比較簡單,更重要的是python運維工具fabric能自動登入其他伺服器進行各種操作,這種實現使用shell是很難做到的,但是使用fabric實現就很簡單,所以對於程式設計師的日常運維部署,建議使用python編寫指令碼

  Linux下預設有python環境,安裝fabric有兩種方式一種是pip直接安裝,另外一種是下載fabric原始碼,使用setuptools工具執行setup.py安裝,兩種方式都需要聯網,基本上差不多,這裡使用pip進行安裝,安裝的時候如果報錯,一般是因為python-devel模組沒有安裝,需要進行安裝,可以提前使用 rpm -qa | grep python-devel 檢視是否安裝python-devel,如果沒有安裝,使用yum安裝如下:

yum -y install python-devel

  pip安裝之前說過,首先下載py檔案:https://bootstrap.pypa.io/get-pip.py,上傳至伺服器之後執行: python get-pip.py 安裝pip即可

  使用pip安裝fabric: pip install fabric 稍等一會就安裝完畢了,這時輸入 fab 就會彈出對應的選項

  接下來編寫一個簡單的python指令碼fabrictest.py來做測試:

 

 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 
 4 from fabric.api import *
 5 
 6 # 設定伺服器登入引數
 7 env.roledefs = {
 8     # 操作一致的放一組,一組執行同一個操作
 9     'servers1':['
[email protected]
:22',], 10 # 第二組 11 'servers2':['[email protected]:22',] 12 } 13 14 # 本機操作 15 def localtask(): 16 local('/usr/local/nginx/nginx') 17 18 # servers1伺服器組操作 19 @roles('servers1') 20 def task1(): 21 run('/usr/local/tomcat/bin/startup.sh') 22 23 # servers2 伺服器組操作 24 @roles('servers2') 25 def task2(): 26 run('/usr/local/tomcat/bin/startup.sh') 27 28 # 執行任務 29 def doworks(): 30 execute(localtask) 31 execute(task1) 32 execute(task2)

 

  以上程式碼,就是簡單的在本地啟動nginx伺服器,在linux1和linux2上啟動了tomcat伺服器,為了接受nginx伺服器的代理,這裡專門使用分組的方式為了適應機器比較多的叢集的需要,另外這裡沒有設定伺服器的密碼,一是為了伺服器的安全;另外叢集間建議設定ssh免密登入,指令碼就不用設定密碼了,方法doworks執行的就是最終彙總的任務,儲存之後,開始執行:

fab -f fabrictest.py doworks

  執行之後,指令碼會自動的依次執行指定的命令,從控制檯可以看到輸出,也可以在程式適當位置新增輸出,列印一些必要資訊

  到這裡,就看到fabric這個工具的功能確實很強大,更多的程式設計介面可以檢視官網網站的文件:http://www.fabfile.org/

  離線安裝的話在fabfile官網有指向python官網的連結,地址是:https://pypi.python.org/pypi/Fabric,進入頁面後可以看到很多版本的下載連結,首先保證安裝setuptools,下載之後解壓釋放,進入目錄後執行: python setup.py install 安裝期間需要一些依賴,比如paramiko,如果系統沒有安裝,這時候會自動聯網下載安裝,如果作業系統已經有相應的依賴,則直接離線安裝成功