亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python3中詳解fabfile的編寫

系統 1752 0

fab命令好似結合我們編寫的fabfile.py(其它文件名必須添加-f filename應用)來搭配使用的,部分命令行參數可以通過相應的方法來替代,使之更加靈活,例如"-H 192.168.56.133,192.168.56.134",我們可以通過定義env.hosts來實現,如"env.hosts=['192.168.56.133,192.168.56.134']"。fabfile的主體由多個自定義的任務函數組成,不同任務實現不同的操作邏輯。

全局屬性設定

env對象的作用是定義fabfile的全局設定,支持多個屬性,包含目標主機、用戶名、密碼、等角色,各屬性說明如下:

  • evn.host:定義目標主機,可以用IP或主機名表示,以Python的列表形式定義,如evn.hosts['192.168.56.133','192.168.56.134']。
  • env.exclude_hosts:排除指定主機,如env.exclude_hosts=['192.168.56.133']。
  • env.user:定義用戶名,如env.user="root"。
  • env.port:定義目標主機端口,默認為22,如env.port="22"。
  • env.password:定義密碼,如env.password='1234567'。
  • env.passwords:與password功能一樣,區別在于不同主機不同密碼的應用場景,需要注意的是,配置passwords是需配置用戶、主機、端口等信息,如:
            
env.passwords = {
  'root@192.168.56.131:22':'1234567',
  'root@192.168.56.132:22':'1234567',
  'root@192.168.56.133:22':'1234567',
  'root@192.168.56.134:22':'1234567'
}
          
  • env.gateway:定義網關(中轉、堡壘機)IP,如env.gateway = '192.168.56.1'。
  • env.deploy_release_dir:自定義全局變量,格式:env.+"變量名稱",如env.deploy_release_dir、env.age、env.sex等。
  • env.roledefs:定義角色分組,比如web組與db組主機區分開來,定義如下:
            
env.roledefs = {
  'webservers':['192.168.56.131','192.168.56.132','192.168.56.133'],
  'dbserver':['192.168.56.134','192.168.56.135']
}
          

引用時使用Python修飾符的形式進行,角色修飾符下面的任務函數為其作用域,下面來看一個示例:

            
@roles('webservers')
def webtask():
  run('/etc/init.d/nginx start')


@roles('dbservers')
def dbtask():
  run('/etc/init.d/mysql start')


@roles('webservers','dbservers')
def pubclitasj():
  run('uptime')

def deploy():
  execute(webtask)
  execute(dbtask)
  execute(pubclitask)
          

在命令執行fab deploy就可以實現不同角色執行不同的任務函數了。

常用API

Fabric提供了一組簡單但功能強大的fabric.api命令集,簡單地調用這些API就能完成大部分應用場景需求。Fabric常用方法及說明如下:

  • local:執行本地命令,如:local('uname -s');
  • lcd:切換本地目錄,如:lcd('/home');
  • cd:切換遠程目錄,如:cd('/data/logs');
  • run:執行遠程命令,如:run('free -m');
  • sudo:sudo方式執行遠程命令,如:sudo('/etc/init.d/httpd start');
  • put:上傳本地文件到遠程主機,如:put('/home/user.info','/data/user.info');
  • prompt:獲得用戶輸入信息,如:prompt('please input user password:');
  • confirm:獲得提示信息確認,如:confirm("Tests failed. Continue[Y/N]?");
  • reboot:重啟遠程主機,如:reboot();
  • @task:函數修飾符,標識的函數為fab可調用的,非標記對fab不可見,純業務邏輯;
  • runs_once:函數修復符,標識的函數只會執行一次,不受多臺主機影響。

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: a毛片免费观看完整 | 日韩欧美视频一区二区在线观看 | 爱我久久国产精品 | 天天干天天插天天操 | 在线视频综合网 | 日韩一区在线视频 | 99精品国内不卡在线观看 | 91一区二区在线观看精品 | 久久久久日韩精品无 | 天天插天天插 | 中文字幕在线免费观看视频 | 欧美激情aa毛片 | 久久成人在线视频 | 狠狠色视频 | 亚洲欧洲国产成人综合一本 | 精品久久免费观看 | 久热爱免费精品视频在线播放 | 夜夜夜夜夜夜爽噜噜噜噜噜噜 | 亚洲成aⅴ人片在线观 | 免费区欧美一级毛片精品 | 久久久久久青草大香综合精品 | 成人午夜大片免费视频77777 | 在线观看日本中文字幕 | 免费高清在线爱做视频 | 亚洲免费片 | 天天射天天干天天操 | 精品国产品香蕉在线观看75 | 欧美在线视频一区二区三区 | 动漫美女h片黄动漫在线观看 | 亚洲国产欧美91 | 久久66热这里只会有精品 | 精品一久久香蕉国产线看观看下 | 日本欧美一区二区三区在线观看 | 国产乱码一区二区三区 | 久操视频网站 | 96精彩视频在线观看 | 婷婷六月激情在线综合激情 | xxxx免费国产在线视频 | 国内精品一区视频在线播放 | 色偷偷资源网 | 国产高清一区二区 |