輕量級自動化運維工具fabric使用與安裝

Fabirc是基於python實現的SSH命令行工具,簡化了SSH的應用程序的部署與系統管理服務。

Fabric的安裝

首先需要配置好python的pip工具
使用wget命令下載好,然後解壓

 wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

然後解壓,進入解壓目錄中,執行setup的python代碼,然後嘗試更新pip

tar -xzvf pip-1.5.4.tar.gz
cd pip-1.5.4/
python setup.py install
pip install --upgrade pip

在pip安裝完成之後,需要使用yum安裝好一些依賴性

yum install make gcc gcc-c++ python-devel python-setuptools -y

直接使用pip安裝python的Fabric模塊

pip install Fabric

然後即可進行Fabirc的源碼安裝

cd /usr/local/src/
wget https://pypi.python.org/packages/source/F/Fabric/Fabric-1.3.0.tar.gz --no-check-certificate #下載壓縮包
tar xvf Fabric-1.3.0.tar.gz   #解壓
cd Fabric-1.3.0/
python setup.py  install  #執行安裝腳本

最後出現如下提示,即表示安裝成功

Using /usr/lib/python2.7/site-packages/pycrypto-2.6.1-py2.7-linux-x86_64.egg
Finished processing dependencies for Fabric==1.3.0

fab命令行的使用

fab是fabric的命令行入口
命令的格式爲
fab [options] – [shell command]
參數有

-l 定義好的函數名
-f 指定的fab入口文件,默認爲fabfile.py,也可以自己指定
-g 指定網關設備
-H 指定目標主機,多臺主機的話使用“,”分隔
-P 以異步的方式來運行多個主機任務
-R 指定角色
-t 指定timeout,連接超時的時間
-T 設置遠程主機命令執行超時的時間
-w 執行失敗時發出警告,默認終止服務


通過遠程主機查詢172.25.254.45的主機名

touch fabfile.py
fab -p testroot -H 172.25.254.45 -- 'hostname'

執行結果爲

[172.25.254.45] Executing task '<remainder>'
[172.25.254.45] run: hostname
[172.25.254.45] out: saltstack


Done.
Disconnecting from 172.25.254.45... done.

在Fabric中支持的常用命令有如下.
local:執行本地命令
lcd:切換本地目錄
cd:切換遠程目錄
run:執行遠程命令
sudo:下放權力
put:上傳文件
get:下載文件
@task:函數修飾符,將函數轉化爲task子類
@runs_once:函數修飾符,標示此修飾符的函數只執行一次

幾個函數修飾符的使用方式

@task:
爲任務添加別名
我們在fab入口文件fabfile.py中編寫如下

from fabric.api import task
@task(alias='test')
def deploy_with_migrantions():
      pass 

執行命令

fab -f fabfile.py --list

結果如下

Available commands:

    deploy_with_migrantions
    test

其中–list參數爲列出入口文件中存在的命令
設置默認的任務
入口文件編寫如下

from fabric.api import task
@task      
def migrate(): 
     pass   
@task      
def push():
     pass   
@task(default=True)
def full_deploy():
     provision()
     push() 
     migrate()    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章