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的方式管理服务器。
fabric批量操作远程操作主机的练习的更多相关文章
- 【转】python fabric实现远程操作和部署
fabric title是开发,但是同时要干开发测试还有运维的活……为毛 task*3 不是 salary * 3 (o(╯□╰)o) 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高 ...
- PYTHON FABRIC实现远程操作和部署
转载至:http://wklken.me/posts/2013/03/25/python-tool-fabric.html fabric title是开发,但是同时要干开发测试还有运维的活 (o(╯□ ...
- python fabric实现远程操作和部署示例
https://www.jb51.net/article/48434.htm 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多.修复bug什么的,测试,提交版本 ...
- python fabric远程操作和部署
博客迁往:新地址(点击直达) 新博客使用markdown维护,线下有版本号库,自己写的所以会定时更新同步.同一时候提供更好的导航和阅读体验 csdn对markdown支持不好.所以旧版不会花时间进行同 ...
- Git远程操作详解
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
- Git远程操作
Git远程操作 // */ // ]]> Git远程操作 Table of Contents 1 Git远程命令概览 2 Git远程仓库与本地仓库的关系图 3 git clone 4 git ...
- [转] SSH原理与运用(2):远程操作与端口转发
英文:阮一峰 链接:http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html 接着前一次的文章,继续介绍SSH的用法. (Imag ...
- [转]Git远程操作详解
原文:http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...
- Git 远程操作详解
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
随机推荐
- 【代码笔记】iOS-手机号验证
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // ...
- ios xcode Code signing failed 解决方案
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min ...
- 设计模式 之 策略(Strategy)模式
最近看了<head first 设计模式>一书,便总结了里面的一些内容,今天就简单介绍一下策略模式. 策略模式:定义了算法族,分别封装起来,让他们能够相互替换,此模式让算法的变化独立于使用 ...
- Windows下使用AutoSSH,并作为服务自启动(不用安装Cygwin)
之前的折腾过Windows下ssh的自动登录,比如这篇Windows下使用Xshell建立反向隧道,但是这个不能无交互的情况下自动连接(比如在连接新主机时),也就很难在服务中使用.解决方法还是得使用命 ...
- ios界面布局整理
1 UIView 1.1 创建自定义的UIView的xib文件 [1]设置 file's Owner的 Custom Class 中的class 执行自定义控件类 [2]设置当前UIView 的屏幕大 ...
- Third glance in Go
在Go語言裏關於數組(Array),切片(Slice)和映射表(Map)的使用是非常常見的.有過其他語言編程背景的人會比較熟悉一下,但是也是因爲過於的熟悉,從而導致一個慣性思維,往往就會踢到“石頭”, ...
- Oracle索引梳理系列(一)- Oracle访问数据的方法
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 解决内网主机ping不通网关能ping内网
有一台笔记本电脑可以自动获取IP,可以和内网其他主机互相PING通,就是PING 不通网关,只能上内网,不能上外网,IP换到其他主机上也可以上外网,说明路由器上没什么限制.路由器也查了,电脑也重装了, ...
- uva 6757 Cup of Cowards(中途相遇法,貌似)
uva 6757 Cup of CowardsCup of Cowards (CoC) is a role playing game that has 5 different characters (M ...
- vim linux SecureCRT vim颜色的设置
解决方法: 1.首先按照环境一的方法检查一下,如果环境一的情况不在进行第二步. 2.修改终端TERM这个环境变量: 1)export命令 临时生效 # echo $TERM xterm #如果结果 ...