Fabric自动化运维工具实现远程SSH部署及系统管理

Fabric是基于python(2.5-2.7)库和命令行来实现SSH远程应用部署及系统管理的工具,使用它,在批量管理远程主机时,不需要一台一台的输入密码登陆,可以把所以主机的用户名和密码写在一个文件里面来操作,下文中有具体实例。

Fabric的安装
yum install python-setuptools python-dev* pycrypto
wget https://pypi.python.org/packages/source/F/Fabric/Fabric-1.10.0.tar.gz --no-check-certificate
tar zxvf Fabric-1.10.0.tar.gz
cd Fabric-1.10.0
python setup.py install
 
python  
>>>import fabric  #检查安装结果,导入模块没有提示异常,则安装成功
针对不同主机执行不同命令,简单脚本如下:(每个定义的函数都可以当成一个参数来执行)
#!/usr/bin/env
python
from fabric.colors import *
from fabric.api import *
 
env.user = ‘root‘
env.roledefs = {
    ‘proxy‘: [‘192.168.199.113‘],
    ‘media‘: [‘192.168.199.118‘]
    }
env.passwords = {
    ‘[email protected]:22‘: ‘123456‘,
    ‘[email protected]:22‘: ‘123456‘
    }
 
@roles(‘proxy‘)
def proxytask():
    run("df -h")
 
@roles(‘media‘)
def mediatask():
    run("free -m")
 
#@roles(‘media‘,‘proxy‘) 
def run():
   execute(proxytask)
   execute(mediatask)
fab -f fabtest.py run
fab -f fabtest.py mediatask
fab -f fabtest.py proxytask  #可以对比一个这三个执行的结果
远程文件推送脚本:

#!/usr/bin/env python
#file tar upload check
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm

env.user=‘root‘
env.hosts=[‘192.168.199.118‘]
env.passwords = {
    ‘[email protected]:22‘: ‘123456‘
   }

            
@task
def put_task(): #upload file task
  run("mkdir -p /root/test")
    with cd("/root/test")
      with settings(warn_only=True):    #when upload error,continue
        result = put("/etc","/root/test")
      if result.failed and no confirm("put file failed,Continue[Y/N]?")
时间: 2024-08-08 01:19:51

Fabric自动化运维工具实现远程SSH部署及系统管理的相关文章

自动化运维工具--Ansible(安装部署、模块简介与操作)

一.Ansible概述 互联网的快速发展导致产品更新换代速度加快,按照传统维护操作使得工作效率低下,自动化运维以尽可能安全高效的完成工作为目的,实现代替传统工作方式. 自动化运维工具划分为两类: 一是需要使用代理工具的,也就是基于agent程序来实现管理功能,例如puppet.func.zabbix等 二是不需要代理配置工具的,可以直接基于SSH服务来完成管理功能,如ansible,fabric等. 自动化运维工具比较: 工具 开发语言 结构 配置文件格式 运行任务 Ansible Python

自动化运维工具之ansible

ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架. 主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定

自动化运维工具Ansible详细部署

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1579894 ========================================================================================== 一.基础介绍 =========================================================

自动化运维工具Ansible实战(一)安装部署

1,基本介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操作

Ansible自动化运维工具部署及使用

一.Ansible介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inven

自动化运维工具Ansible架构部署应用及playbooks简单应用

在日常服务器运维中,我们经常要配置相同的服务器配置,前期我们都是一台一台的去配置,这种方法操作主要应对于服务器数量不多且配置简单的情况还可以继续这样操作,如果我们后期维护几百服务器或者几万服务器呢? 我应该怎样去快速配置服务器呢?如果需要手动的每台服务器进行安装配置将会给运维人员带来许多繁琐而又重复的工作同时也增加服务器配置的异常,至此自动化运维工具解决我们的瓶颈---Ansible工具. Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfeng

自动化运维工具ansible的基本应用

在很多场景中我们都需要在多个主机上执行相同的命令或者是做相同的配置工作,此时,为了简化操作,我们可以借助一些自动化的工具来完成我们的需求,这种工具我们称之为自动化运维工具.ansible就是其中之一,下面我们就来用ansible来实现一些简单操作. 下面是ansible可以实现很多工具的功能,框架图如下所示:ansible不能实现操作系统的安装 ansible作者就是早期puppet和func的维护者之一,因为ansible充分吸取了puppet和func的优势,又力图避免他们的劣势. OS P

自动化运维工具Ansible详细部署 (转载)

自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1579894 ========================================================================================== 一.基础介绍 ===========================

轻量级自动化运维工具ansible之一:介绍及初步使用

一.常见的自动化运维工具: OS Provisioning:PXE, Cobbler OS Config:puppet, saltstack, chef, func Task Exec:fabric, saltstack, func Program Deployment:fabric 管理主机控制被管理节点的方式: agent:被管理节点上需要安装代理程序以接受管理主机的操作:如puppet, func agentless:被管理节点不需安装代理程序,管理主机借助ssh传递操作指令,如ansib