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

fabric批量操作远程操作主机的练习的更多相关文章

  1. 【转】python fabric实现远程操作和部署

    fabric title是开发,但是同时要干开发测试还有运维的活……为毛 task*3 不是 salary * 3 (o(╯□╰)o) 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高 ...

  2. PYTHON FABRIC实现远程操作和部署

    转载至:http://wklken.me/posts/2013/03/25/python-tool-fabric.html fabric title是开发,但是同时要干开发测试还有运维的活 (o(╯□ ...

  3. python fabric实现远程操作和部署示例

    https://www.jb51.net/article/48434.htm 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多.修复bug什么的,测试,提交版本 ...

  4. python fabric远程操作和部署

    博客迁往:新地址(点击直达) 新博客使用markdown维护,线下有版本号库,自己写的所以会定时更新同步.同一时候提供更好的导航和阅读体验 csdn对markdown支持不好.所以旧版不会花时间进行同 ...

  5. Git远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...

  6. Git远程操作

    Git远程操作 // */ // ]]>   Git远程操作 Table of Contents 1 Git远程命令概览 2 Git远程仓库与本地仓库的关系图 3 git clone 4 git ...

  7. [转] SSH原理与运用(2):远程操作与端口转发

    英文:阮一峰 链接:http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html 接着前一次的文章,继续介绍SSH的用法. (Imag ...

  8. [转]Git远程操作详解

    原文:http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...

  9. Git 远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...

随机推荐

  1. 【代码笔记】iOS-手机号验证

    代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // ...

  2. ios xcode Code signing failed 解决方案

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min ...

  3. 设计模式 之 策略(Strategy)模式

    最近看了<head first 设计模式>一书,便总结了里面的一些内容,今天就简单介绍一下策略模式. 策略模式:定义了算法族,分别封装起来,让他们能够相互替换,此模式让算法的变化独立于使用 ...

  4. Windows下使用AutoSSH,并作为服务自启动(不用安装Cygwin)

    之前的折腾过Windows下ssh的自动登录,比如这篇Windows下使用Xshell建立反向隧道,但是这个不能无交互的情况下自动连接(比如在连接新主机时),也就很难在服务中使用.解决方法还是得使用命 ...

  5. ios界面布局整理

    1 UIView 1.1 创建自定义的UIView的xib文件 [1]设置 file's Owner的 Custom Class 中的class 执行自定义控件类 [2]设置当前UIView 的屏幕大 ...

  6. Third glance in Go

    在Go語言裏關於數組(Array),切片(Slice)和映射表(Map)的使用是非常常見的.有過其他語言編程背景的人會比較熟悉一下,但是也是因爲過於的熟悉,從而導致一個慣性思維,往往就會踢到“石頭”, ...

  7. Oracle索引梳理系列(一)- Oracle访问数据的方法

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  8. 解决内网主机ping不通网关能ping内网

    有一台笔记本电脑可以自动获取IP,可以和内网其他主机互相PING通,就是PING 不通网关,只能上内网,不能上外网,IP换到其他主机上也可以上外网,说明路由器上没什么限制.路由器也查了,电脑也重装了, ...

  9. uva 6757 Cup of Cowards(中途相遇法,貌似)

    uva 6757 Cup of CowardsCup of Cowards (CoC) is a role playing game that has 5 different characters (M ...

  10. vim linux SecureCRT vim颜色的设置

    解决方法: 1.首先按照环境一的方法检查一下,如果环境一的情况不在进行第二步. 2.修改终端TERM这个环境变量: 1)export命令 临时生效 # echo $TERM xterm   #如果结果 ...