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的方式管理服务器。