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 ...
随机推荐
- oracle游标用法
-- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标 --(1)定义游标 --(2)定义游标变量 --(3)使用for循环来使用这个游标 ...
- 基于事件驱动的前端通信框架(封装socket.io)
socket.io的使用可以很轻松的实现websockets,兼容所有浏览器,提供实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验.但是在使用socket.io的过程中,由于业务需求需要同 ...
- HDU - 1033 Edge 【模拟】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1033 题意 给定一个起始点 300 420 走的第一步是 310 420 下面的每一步 都由 输入决定 ...
- Data Structure Array: Find if there is a subarray with 0 sum
http://www.geeksforgeeks.org/find-if-there-is-a-subarray-with-0-sum/ #include <iostream> #incl ...
- 2018svn1
Svn(Subversion) VisualSVN-Server是SVN的服务端.TortoiseSVN是客户端.D:\SVNRepositories是安装VisualSVN-Server时候选择的仓 ...
- 【leetcode刷题笔记】Permutation Sequence
The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...
- 【六】MongoDB管理之副本集
一.复制介绍 所谓的复制就是在多个主机之间同步数据的过程. 1.数据冗余及可用性 复制技术提供数据冗余及可用性,在不同的数据库服务器上使用多个数据副本,复制技术防止单个数据库服务器出现数据故障而出现数 ...
- CSS3自定义Checkbox特效
在线演示 本地下载
- AIM Tech Round 3 (Div. 2) A , B , C
A. Juicer time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...
- linux lvm
一.linux的lv(logical volume) lv各层次示例图如下: 核心思想:最底层的pv就是一个一个的磁盘,在保证总体容量的情况下,可以移除部分磁盘,在pv上面设置一个vg,相当于vg把所 ...