激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python3中詳解fabfile的編寫

Python3中詳解fabfile的編寫

2021-03-09 00:09Python教程網(wǎng) Python

這篇文章給大家分享了Python3中詳解fabfile的編寫的相關知識點以及重要內(nèi)容,有興趣的朋友跟著學習下。

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

全局屬性設定

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功能一樣,區(qū)別在于不同主機不同密碼的應用場景,需要注意的是,配置passwords是需配置用戶、主機、端口等信息,如:
?
1
2
3
4
5
6
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:定義網(wǎng)關(中轉(zhuǎn)、堡壘機)IP,如env.gateway = '192.168.56.1'。
  • env.deploy_release_dir:自定義全局變量,格式:env.+"變量名稱",如env.deploy_release_dir、env.age、env.sex等。
  • env.roledefs:定義角色分組,比如web組與db組主機區(qū)分開來,定義如下:
?
1
2
3
4
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修飾符的形式進行,角色修飾符下面的任務函數(shù)為其作用域,下面來看一個示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@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)

在命令執(zhí)行fab deploy就可以實現(xiàn)不同角色執(zhí)行不同的任務函數(shù)了。

常用API

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

  • local:執(zhí)行本地命令,如:local('uname -s');
  • lcd:切換本地目錄,如:lcd('/home');
  • cd:切換遠程目錄,如:cd('/data/logs');
  • run:執(zhí)行遠程命令,如:run('free -m');
  • sudo:sudo方式執(zhí)行遠程命令,如: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:函數(shù)修飾符,標識的函數(shù)為fab可調(diào)用的,非標記對fab不可見,純業(yè)務邏輯;
  • runs_once:函數(shù)修復符,標識的函數(shù)只會執(zhí)行一次,不受多臺主機影響。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 韩国一大片a毛片 | 午夜色片 | 蜜桃视频在线观看免费 | 色黄网站在线观看 | 亚洲成人福利电影 | 国产一区二区三区撒尿在线 | 久久久久久亚洲国产精品 | 99亚洲伊人久久精品影院红桃 | 俄罗斯hdxxx| 91精品国产日韩91久久久久久360 | 日韩黄色一级视频 | 一区二区三区四区五区中文字幕 | 黄色免费播放网站 | 久色亚洲 | 欧美国产成人在线 | 国产亚洲高清在线精品不卡 | gogo全球大胆高清人露出91 | 国产一区日韩一区 | 免费在线性爱视频 | 黄色片在线播放 | 毛片免费看的 | 国产日韩在线视频 | 国产福利视频 | 久久中出 | 在线亚洲免费视频 | 午夜视频中文字幕 | 一级免费毛片 | 亚洲午夜不卡 | 国产精品久久久久久久不卡 | 在火车上摸两乳爽的大叫 | 日韩电影一区二区三区 | 国产成人精品区一区二区不卡 | 神秘电影91 | 视频在线中文字幕 | 久久国产精品二区 | 国产91九色在线播放 | 久草手机在线视频 | 1级毛片在线观看 | 欧美日本在线视频 | 欧美日韩免费在线观看视频 | 久久久久久久久久亚洲精品 |