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

  使用shell命令進行復雜的運維時,代碼每每變得複雜難懂,而使用python腳本語言來編寫運維程序,就至關於開發普通的應用同樣,因此維護和擴展都比較簡單,更重要的是python運維工具fabric能自動登陸其餘服務器進行各類操做,這種實現使用shell是很難作到的,可是使用fabric實現就很簡單,因此對於程序員的平常運維部署,建議使用python編寫腳本python

  Linux下默認有python環境,安裝fabric有兩種方式一種是pip直接安裝,另一種是下載fabric源碼,使用setuptools工具執行setup.py安裝,兩種方式都須要聯網,基本上差很少,這裏使用pip進行安裝,安裝的時候若是報錯,通常是由於python-devel模塊沒有安裝,須要進行安裝,能夠提早使用 rpm -qa | grep python-devel 查看是否安裝python-devel,若是沒有安裝,使用yum安裝以下:linux

yum -y install python-devel

  pip安裝以前說過,首先下載py文件:https://bootstrap.pypa.io/get-pip.py,上傳至服務器以後執行: python get-pip.py 安裝pip便可nginx

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

  接下來編寫一個簡單的python腳本fabrictest.py來作測試:shell

 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 
 4 from fabric.api import *
 5 
 6 # 設置服務器登陸參數
 7 env.roledefs = {
 8     # 操做一致的放一組,一組執行同一個操做
 9     'servers1':['root@linux2:22',],
10     # 第二組
11     'servers2':['root@linux3: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

  執行以後,腳本會自動的依次執行指定的命令,從控制檯能夠看到輸出,也能夠在程序適當位置添加輸出,打印一些必要信息bootstrap

  到這裏,就看到fabric這個工具的功能確實很強大,更多的編程接口能夠查看官網網站的文檔:http://www.fabfile.org/api

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

相關文章
相關標籤/搜索