日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python fabric实践操作

發(fā)布時間:2024/4/13 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python fabric实践操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前面學(xué)習(xí)了理論,下面該練練手了。兩臺機(jī)器:10.1.6.186、10.1.6.159。fabric部署在10.1.6.186上面。

1 ?執(zhí)行一個簡單的task任務(wù),顯示兩臺機(jī)器的/home/guol/目錄下的文件

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #!/usr/bin/python from fabric.api import * from fabric.context_managers import * env.hosts=['10.1.6.186','10.1.6.159'] env.password='xxxxxx' def task1(): ????with cd('/home/guol'): ????????run('ls -l') ##結(jié)果 root@vm11:/tmp# fab task1 [10.1.6.186] Executing task 'task1' [10.1.6.186] run: ls -l [10.1.6.186] out: total 0 [10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local [10.1.6.186] out: [10.1.6.159] Executing task 'task1' [10.1.6.159] run: ls -l [10.1.6.159] out: total 0 [10.1.6.159] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 159-remote [10.1.6.159] out: Done. Disconnecting from 10.1.6.159... done. Disconnecting from 10.1.6.186... done.

2 ?執(zhí)行和1相同的任務(wù),不過排除掉10.1.6.159這臺機(jī)器

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #!/usr/bin/python from fabric.api import * from fabric.context_managers import * env.hosts=['10.1.6.186','10.1.6.159'] env.password='xxxxxx' env.exclude_hosts=['10.1.6.159'] def task1(): ????with cd('/home/guol'): ????????run('ls -l') ##執(zhí)行 root@vm11:/tmp# fab task1 [10.1.6.186] Executing task 'task1' [10.1.6.186] run: ls -l [10.1.6.186] out: total 0 [10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local [10.1.6.186] out: Done. Disconnecting from 10.1.6.186... done.

3 ?執(zhí)行和2相同任務(wù),再增加一個task2,并且把taskN偽裝成meta任務(wù)執(zhí)行

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #!/usr/bin/python from fabric.api import * from fabric.colors import * from fabric.context_managers import * env.hosts=['10.1.6.186','10.1.6.159'] env.password='xxxxxx' env.exclude_hosts=['10.1.6.159'] def task1(): ????with cd('/home/guol'): ????????run('ls -l') def task2(): ????print(green("I'm fabric")) def deploy(): ????execute(task1) ????execute(task2) ##執(zhí)行 root@vm11:/tmp# fab deploy [10.1.6.186] Executing task 'deploy' [10.1.6.186] Executing task 'task1' [10.1.6.186] run: ls -l [10.1.6.186] out: total 0 [10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local [10.1.6.186] out: [10.1.6.186] Executing task 'task2' I'm fabric Done. Disconnecting from 10.1.6.186... done.

4 ?不同的機(jī)器執(zhí)行不同的task

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #!/usr/bin/python from fabric.api import * from fabric.colors import * from fabric.context_managers import * env.roledefs={'web1':['10.1.6.186'],'web2':['10.1.6.159']} env.password='xxxxxx' @roles('web1') def task1(): ????with cd('/home/guol'): ????????run('ls -l') @roles('web2') def task2(): ????print(green("I'm fabric")) def deploy(): ????execute(task1) ????execute(task2) ##執(zhí)行 root@vm11:/tmp# fab deploy [10.1.6.186] Executing task 'task1' [10.1.6.186] run: ls -l [10.1.6.186] out: total 0 [10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local [10.1.6.186] out: [10.1.6.159] Executing task 'task2' I'm fabric Done. Disconnecting from 10.1.6.186... done.

5 ?把159的/home/guol/159-remote拉取到186的?/home/guol/目錄下

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #!/usr/bin/python from fabric.api import * from fabric.colors import * from fabric.context_managers import * env.hosts=['10.1.6.159'] env.password='xxxxxx' def task1(): ????print(green("I'm 186 /home/guol/")) ????local('ls -l /home/guol') def task2(): ????print(green("I'm get 159's 159-remote file to 186")) ????get('/home/guol/159-remote','/home/guol') ????print(yellow("I'm 186 /home/guol/")) ????local('ls -l /home/guol') def deploy(): ????execute(task1) ????execute(task2) ##執(zhí)行 root@vm11:/tmp# fab deploy [10.1.6.159] Executing task 'deploy' [10.1.6.159] Executing task 'task1' I'm 186 /home/guol/ [localhost] local: ls -l /home/guol total 0 -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local [10.1.6.159] Executing task 'task2' I'm get 159's 159-remote file to 186 [10.1.6.159] download: /home/guol/159-remote <- /home/guol/159-remote I'm 186 /home/guol/ [localhost] local: ls -l /home/guol total 0 -rw-r--r-- 1 root root 0 Dec 21 14:28 159-remote -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local Done. Disconnecting from 10.1.6.159... done.

6 ??把186的/home/guol/?186-local推送到159的?/home/guol/目錄下

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/usr/bin/python from fabric.api import * from fabric.colors import * from fabric.context_managers import * env.hosts=['10.1.6.159'] env.password='xxxxxx' def task1(): ????print(green("I'm 159 /home/guol/")) ????with cd('/home/guol'): ????????run('ls -l') def task2(): ????print(green("I'm put 186's 186-local file to 159")) ????put('/home/guol/186-local','/home/guol') ????print(yellow("I'm 159 /home/guol/")) ????with cd('/home/guol'): ????????run('ls -l') def deploy(): ????execute(task1) ????execute(task2) ##執(zhí)行 root@vm11:/tmp# fab deploy [10.1.6.159] Executing task 'deploy' [10.1.6.159] Executing task 'task1' I'm 159 /home/guol/ [10.1.6.159] run: ls -l [10.1.6.159] out: total 0 [10.1.6.159] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 159-remote [10.1.6.159] out: [10.1.6.159] Executing task 'task2' I'm put 186's 186-local file to 159 [10.1.6.159] put: /home/guol/186-local -> /home/guol/186-local I'm 159 /home/guol/ [10.1.6.159] run: ls -l [10.1.6.159] out: total 0 [10.1.6.159] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 159-remote [10.1.6.159] out: -rw-r--r-- 1 root root 0 Dec 21 14:33 186-local [10.1.6.159] out: Done. Disconnecting from 10.1.6.159... done.

7 ?在186上打開一個159的交互式的shell

?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/python from fabric.api import * from fabric.colors import * from fabric.context_managers import * env.hosts=['10.1.6.159'] env.password='xxxxxx' def task3(): ????open_shell("ifconfig eth0|grep '10.1.6.159'") def deploy(): ?????execute(task3) ##執(zhí)行 root@vm11:/tmp# fab deploy [10.1.6.159] Executing task 'deploy' [10.1.6.159] Executing task 'task3' Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic x86_64) Last login: Fri Dec 21 14:39:39 2012 from 10.1.6.186 ifconfig eth0|grep '10.1.6.159' root@vm12:~# ifconfig eth0|grep '10.1.6.159' ??????????inet addr:10.1.6.159? Bcast:10.1.6.255? Mask:255.255.255.0

?

總結(jié)

以上是生活随笔為你收集整理的Python fabric实践操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。