Fabric:系统批量运维管理器!!!

项目背景:

实验环境:

vmware workstation 11

centos6.5的系统下

fabric服务器主机:ip:192.168.0.14

堡垒机:ip:192.168.0.44

目标服务器:ip:192.168.0.26

SecureCRT (ssh远程连接软件)

软件介绍:

Fabric官网对于它的说明:

Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.

译文:

Fabric是基于python(2.5到2.7)实现ssh命令行工具,简化了ssh的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括命令执行、文件上传、下载及完整执行日志输出。

实验流程:

一、软件下载

[[email protected] ~]# easy_install fabric  #首先你得确保你安装了python-setuptools

二、查看是否安装成功

可以看到没有报错,说明模块成功导入。

三、官网入门测试示例

1、fabric官网示例图

2、在自己主机上测试

因为我已经添加了ssh信任,所以没有提示输入远程主机的密码。

如果你不清楚如何设置,可以看我的下面的这篇文章。

http://9399369.blog.51cto.com/9389369/1750915

四、远程执行命令,并且在本机上得到输出

五、查看本地与远程主机信息。

1、创建一个脚本文件

2、通过fab命令调用local_task任务函数

3、通过fab命令调用remote_task任务函数

六、动态获取远程目录列表

1、脚本文件编写

[[email protected] ~]# vim fuchao02.py

#!/usr/bin/env python

from fabric.api import *

env.user="root"

env.hosts=[‘192.168.0.44‘]

env.passwd="123456"

@runs_once

def input_raw():

return prompt("please input directory name:",default="/root")

def worktask(dirname):

run("ls -l "+dirname)

@task

def go():

getdirname = input_raw()

worktask(getdirname)

2、脚本执行

七、网关模式文件上传与执行

1、脚本文件的编写

[[email protected] ~]# cat fuchao03.py
#!/usr/bin/env python
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm

env.user="root"
env.gateway=‘192.168.0.44‘     #堡垒机ip
env.hosts=[‘192.168.0.26‘]     #真正的服务器
env.password="123456"          #服务器密码

lpackpath="/home/lnmp1.2.tar.gz"
rpackpath ="/home/install"

@task
def put_task():
        run("mkdir -p /home/install")
        with settings(warn_only=True):
                result = put(lpackpath,rpackpath)
        if result.failed and not confirm("put file failed,Continue[Y/N]?"):
                abort("Aborting file put task!")

@task
def run_task():
        with cd("/home/install"):
                run("tar -zxvf lnmp1.2.tar.gz")
                with cd("lnmp1.2/"):
                        run("./install.sh ")

@task
def go():
        put_task()
        run_task()

2、脚本执行

可以看到一切都是这么简单方便。。。。

项目总结:

时间: 2024-10-13 15:09:37

Fabric:系统批量运维管理器!!!的相关文章

系统批量运维管理工具pexpect

1.介绍pexpect 通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令进行自动交互,不需要人工干预达到自动目的. 2.pexpect的组件介绍 2.1.spawn类 作用:启动和控制子应用程序,其构造函数如下: class pexpect.spawn(command,args=[],timeout=30,maxread=2000,searchwindowsize=None,logfile=None,cwd=None,env=None,ignore_sighup=

系统集中运维管理平台【社区版】安装与配置方法

最近很多博友反应不知道怎么安装与配置"系统集中运维管理平台[社区版]"程序,下面我写一个详细的配置文档,希望能够帮助各位博友: 程序支持操作系统平台: 主程序支持: Win7.Win8.Win8.1.Win2008.Win2008R2.Win2012.Win2012R2 MYSQL数据库: 软件版本:mysql_installer_community_V5.6.21.1_setup.1418020972 数据库可以安装在Windows或Linux平台,根据个人需求,这里以Windows

系统批量运维管理器Fabric详解

1.fab常用的参数 fab作为Fabric程序的命令行入口,提供了丰富的参数调用,命令格式如下: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...]... -l,显示定义好的任务函数名: -f,指定fab入口文件,默认入口文件名为fabfile.py: -g,指定网关(中转)设备,比如堡垒机环境,填写堡垒机IP即可: -H,指定目标主机,多台主机用","号分隔: -P,以异步并行方式运行多

Pexpect:系统批量运维管理器!!!

项目背景: 为了更好的实现我们企业的自动化运维,我们需要对pexpect模块有清晰的了解和使用能力. 实验环境: vmware workstation 11 centos6.5的系统下 pexpect服务器:192.168.0.26 远程主机:192.168.0.14 SecureCRT (ssh远程连接软件) 软件介绍 Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块. Pexpect 可以用来和像 ssh.ftp.passwd.telnet 等命令行程序进行自动

系统批量运维管理器pexpect的使用

# pip install pexpect 或 # easy_install pexpect 1 #!/usr/bin/env python 2 import pexpect 3 child = pexpect.spawn('/usr/bin/scp /root/pexpect/haha 172.16.65.201:/tmp/') 4 child.expect('password:') 5 child.sendline('rootroot') 6 child.expect(pexpect.EOF

系统批量运维管理器paramiko详解

一.paramiko介绍 paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式.可以实现远程命令执行.文件传输.中间SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功能 官网地址:http://www.paramiko.org/installing.html   http://docs.paramiko.org/en/2.4/   https://pypi.org/project/paramiko/ 二.paramiko安装 [email p

平安城市运维管理软件架构

1. 平安城市运维管理挑战   平安城市是一个由各式软硬件组成的复杂网络系统,视频业务是其核心业务.在平安城市网络中部署着众多视频图像信息采集.传输.处理设备和应用软件系统.这些设备与应用软件系统在满足治安管理.城市管理.交通管理.应急指挥等多样化需求的同时,也对运维管理提出了新的要求与挑战.  平安城市的运维管理所面对的挑战如图1所示.  针对平安城市的运维管理挑战,平安城市运维管理系统(以下简称运维管理系统)的功能和范围定义如图2所示.  不同于电信网络.计算机网络的运维管理系统,平安城市的

教你如何用好这些IT运维管理必备工具

能熟练使用下面的两三个IT运维管理工具,你就是高手中的高手. 统一帐号管理 你还在自己写脚本批量增加机器的用户名.分组和修改密码或者同步主机的/etc/passwd吗?你还在使用脚本批量对用户设置权限吗?如果有一台帐号主机能够提供所有服务器的帐号.密码.权限控制,如此一来,如果想要增加.修改.刪除用户,只要到这台服务器上面处理即可,这样是不是很方便? 1. LDAP 统一管理各种平台帐号和密码,包括但不限于各种操作系统(Windows.Linux),Linux系统sudo集成,系统用户分组,主机

运维管理平台实现与学习心得

经过一段时间的学习,写了一个简单的运维管理平台小项目,先看看啥样吧! 下面说明下具体实现: 软件架构:HTML+CSS+Jquery+Bootstrap+Ajax+Python2.7+Django1.9+SaltStack+MySQL 功能描述: 数据可视化:采用百度开源的ECharts绘图,通过Python脚本每分钟统计Nginx日志分析PV/UV量写到数据库. 资产管理:采用SaltStack Restful API二次封装调用收集主机配置信息入库,并提供增删改查. 主机批量管理:也是调用S