python fabric的安装与使用
背景:fabric主要执行远程的shell命令,包括文件的上传、下载,以及提示用户输入等辅助其它功能。
测试系统:ubuntu16
要求:python //系统有自带,ubuntu16 通常自带python2.7.5
一、安装fabric
1、安装fabric
$ sudo apt-get install python-pip $ sudo pip install --upgrade pip //升级pip $ sudo pip install fabric
2、查看安装结果
$ which fab
二、fabric的使用
1、编写hello脚本: vim /tmp/fab/hello.py
1.1 脚本内容
#!/usr/bin/env python def hello():
print("Hello world!")
1.2 运行文件及输出结果
$ fab -f hello.py hello -----------------------------------------> Hello world! Done.
2、参数传递:vim /tmp/fab/test1.py
2.1 脚本内容
#!/usr/bin/env python
def hello(name):
print('Hello %s!' % name)
2.2 运行文件及输出结果
$ fab -f test01.py hello:jeff -------------------------------------->
Hello jeff! Done.
3、本地操作
3.1 vim /tmp/fab/lslocal.py
#!/usr/bin/env python from fabric.api import local def lslocal():
local('cd /usr/local')
local('ls')
3.2 运行文件及输出结果
$ fab -f local.py lslocal
[localhost] local: cd /usr/local && ls
bin etc games include lib man sbin share src Done.
4、远程操作
4.1 脚本内容
#!/usr/bin/env python
# -*- coding: utf-8 -*- from fabric.api import * env.roledef = {
'server1': ['root@172.16.1.201:22',],
'server2': ['zun1@172.16.1.206:22',]
}
env.password = '123456' @roles('server1')
def task1():
run('cd /usr/local && ls') @roles('server2')
def task2():
with cd('/home/zun1'): //with的作用在于让后面的表达式语句继承当前的状态
run('ls') // 以实现 “ls /home/zun1” 的效果 def test():
execute(task1)
execute(task2)
4.2 运行文件及输出结果
$ fab -f test01.py test ------------------------------------------------------------------------------------> [root@172.16.1.201:22] Executing task 'task1'
[root@172.16.1.201:22] run: cd /usr/local && ls
[root@172.16.1.201:22] out: bin etc games include lib lib64 libexec sbin share src
[root@172.16.1.201:22] out: [zun1@172.16.1.206:22] Executing task 'task2'
[zun1@172.16.1.206:22] run: cd /home/zun1 && ls
[zun1@172.16.1.206:22] out: test_fabric walle-web.vendor.tgz
[zun1@172.16.1.206:22] out: Done.
Disconnecting from root@172.16.1.201... done.
Disconnecting from 172.16.1.206... done.
以上只对fabric做个大概演示,如想深入研究,可查看 官网教程。
python fabric的安装与使用的更多相关文章
- Python自动化运维工具fabric的安装
使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...
- python fabric安装
1 安装epel wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2 安装pip yum i ...
- Python Fabric远程自动部署简介
Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...
- Python - Fabric简介
1 - Fabric Fabric是一个Python的库,提供了丰富的同SSH交互的接口,可以用来在本地或远程机器上自动化.流水化地执行Shell命令. 非常适合用来做应用的远程部署及系统维护.简单易 ...
- 轻量级自动化运维工具Fabric的安装与实践
一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...
- 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化
1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了 ...
- Python Fabric模块详解
Python Fabric模块详解 什么是Fabric? 简单介绍一下: Fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理效率. 再具体点介绍一下,Fabri ...
- (数据科学学习手札132)Python+Fabric实现远程服务器连接
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 日常工作中经常需要通过SSH连接到多台远程 ...
- Python 2/3 安装与运行环境设置
Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/ 下载Win版本 https://www.python.org/downloa ...
随机推荐
- sql获取数组指定元素
需求:获取字符数组1,2,3的第2个元素 方法:通过自定义函数来实现 /* 获取字符串数组某个元素 */ from sysobjects where id = object_id('Get_StrAr ...
- php输入输出
php是服务器脚本语言,js是客户端脚本语言 php用表单接收数据,echo 输出数据,$定义变量. <?php echo $_POST["sub"]; // POST后是表 ...
- Data Structure Binary Tree: Inorder Tree Traversal without recursion and without stack!
http://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion-and-without-stack/ #include &l ...
- Python 3 常用模块之 一
Python 3 模块 一. time模块 时间模块 在Python中,通常有这几种方式来表示时间: 1.1 时间戳(timestamp): 通常来说,时间戳表示的是从1970年1月1日00:00: ...
- 签offer和签三方协议
一般来讲,签约分为两种:签offer和签三方协议.其中,前者对个人及企业的约束效力远不及后者.下面分别来介绍. 1.签offer offer一般是单位提供给你的一个录用意向,以合同的形式提供给你,要求 ...
- Mysql视图使用总结
视图View使用总结: 视图可以看作为“虚拟表”,因为它返回的结果集格式与实体数据表返回的数据集格式类似,并且引用视图的方式与引用数据表的方式相同.每次查询使用视图时,DBMS会动态生成视图结果集所需 ...
- Codeforces 505C Mr. Kitayuta, the Treasure Hunter:dp【考虑可用范围】
题目链接:http://codeforces.com/problemset/problem/505/C 题意: 有n个宝石,分别在位置p[i].(1 <= n,p[i] <= 30000) ...
- php设计模式课程---6、策略模式如何使用
php设计模式课程---6.策略模式如何使用 一.总结 一句话总结:比如代码需求,做一饭店,有南北方不同菜系,不同分店有不同的饭菜汤的需求,代码怎么设计 从饭店有特色过渡到厨师有特色(南方厨师(南方饭 ...
- BEC listen and translation exercise 36
你所持的护照可使你享有免费医疗.Your passport qualifies you to receive free medical treatment.公司指使其职员挖对手的客户.The comp ...
- java String final + equal == 区别
java String 是不可改变的类型. String a = "hello2"; String d = "hello"; final String b = ...