fabric批量操作远程操作主机的练习

fabric是python的一个基于命令行的自动化部署框架,用docker开了两个容器来学习fabric.

#!/usr/bin/env python
#-*- coding=utf-8 -*-

from fabric.api import *

env.hosts=[
    'root@114.215.86.228:22',
    'root@114.215.86.228:32',
]
env.passwords={
    'root@114.215.86.228:22':'*****',
    'root@114.215.86.228:32':'***',
}
@task
def task1():
    run('ps')

@task
def task2():
    run('uname -a')
@task
def dotask():
    execute(task1)
    execute(task2)

执行结果

root@0fe14b5400a8:/home# fab dotask
[root@114.215.86.228:22] Executing task 'dotask'
[root@114.215.86.228:22] Executing task 'task1'
[root@114.215.86.228:22] run: ps
[root@114.215.86.228:22] out:   PID TTY          TIME CMD
[root@114.215.86.228:22] out: 26424 pts/2    00:00:00 ps
[root@114.215.86.228:22] out:

[root@114.215.86.228:32] Executing task 'task1'
[root@114.215.86.228:32] run: ps
[root@114.215.86.228:32] out:   PID TTY          TIME CMD
[root@114.215.86.228:32] out:    59 pts/0    00:00:00 ps
[root@114.215.86.228:32] out:

[root@114.215.86.228:22] Executing task 'task2'
[root@114.215.86.228:22] run: uname -a
[root@114.215.86.228:22] out: Linux iZ2893wjzgyZ 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@114.215.86.228:22] out:

[root@114.215.86.228:32] Executing task 'task2'
[root@114.215.86.228:32] run: uname -a
[root@114.215.86.228:32] out: Linux c368a2768e6b 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@114.215.86.228:32] out:

[root@114.215.86.228:32] Executing task 'dotask'
[root@114.215.86.228:22] Executing task 'task1'
[root@114.215.86.228:22] run: ps
[root@114.215.86.228:22] out:   PID TTY          TIME CMD
[root@114.215.86.228:22] out: 26447 pts/2    00:00:00 ps
[root@114.215.86.228:22] out:

[root@114.215.86.228:32] Executing task 'task1'
[root@114.215.86.228:32] run: ps
[root@114.215.86.228:32] out:   PID TTY          TIME CMD
[root@114.215.86.228:32] out:    63 pts/0    00:00:00 ps
[root@114.215.86.228:32] out:

[root@114.215.86.228:22] Executing task 'task2'
[root@114.215.86.228:22] run: uname -a
[root@114.215.86.228:22] out: Linux iZ2893wjzgyZ 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@114.215.86.228:22] out:

[root@114.215.86.228:32] Executing task 'task2'
[root@114.215.86.228:32] run: uname -a
[root@114.215.86.228:32] out: Linux c368a2768e6b 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@114.215.86.228:32] out:


Done.
Disconnecting from 114.215.86.228... done.
Disconnecting from 114.215.86.228:32... done.

尽管如此,密码是明文,不安全,因此仍然推荐用加key的方式管理服务器。

posted @ 2015-03-07 00:00  李雷雷alexkn  阅读(886)  评论(0编辑  收藏  举报