`
m4774411wang
  • 浏览: 112628 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

fabric 批量执行服务器任务和自动化运维管理

 
阅读更多

上节我们已经把fabric给配置好了。这节我们通过fabric编写批量执行服务器任务和自动化运维管理

先介绍下fabric的特点,这个在官方文档里面已经介绍过:

1 代码可读性强,完全是python语言。
2 封装了本地、远程操,内置了一些方法。
3 可以根据需求灵活的定义参数。
4 角色定义,方便批量管理。

常用的配置参数:

env.host           -- 主机ip,当然也可以-H参数指定
env.password       -- 密码,打好通道的请无视
env.roledefs       -- 角色分组,比如:{'web': ['x', 'y'], 'db': ['z']}

fab -l             -- 显示可用的task(命令)
fab -H             -- 指定host,支持多host逗号分开
fab -R             -- 指定role,支持多个
fab -P             -- 并发数,默认是串行
fab -w             -- warn_only,默认是碰到异常直接abort退出
fab -f             -- 指定入口文件,fab默认入口文件是:fabfile/fabfile.py


常用的函数:

local('pwd')                     -- 执行本地命令
lcd('/tmp')                      -- 切换本地目录
cd('/tmp')                       -- 切换远程目录
run('uname -a')                  -- 执行远程命令,一般会提示叫你输入密码。
sudo('/etc/init.d/nginx start')  -- 执行远程sudo,注意pty选项
 

下面是写了一个远程复制文件和本地复制文件的函数。我把localhost既单做远程,还单做本地来操作。

#encoding=utf-8
#description:fabric代码测试。

from fabric.api import run,local,lcd,env,cd

env.hosts = ['localhost']

def localcopyfile():
   '''本地文件copy操作'''
  local('pwd')
  local('cp /home/laowang/workspace/info.txt /home/laowang/test')
  print 'local copy file success'


def remote():
   '''远程文件拷贝操作'''
  run('pwd')
  run('cp /home/laowang/workspace/test.py /home/laowang/test')
  print 'remote copy file success'

本地localcopyfile方法的执行结果:

fabric本地执行代码

远程remote方法的执行结果:

fabric远程执行代码

说明:

1 远程如果你没在代码里面设置好密码 的话,在执行脚本的时候,代码会提示让你输入密码,才能执行,而本地的话,则不会。

2 这个只是简单的演示,给运维的同学做一个铺垫。其实结合好linux自身的命令就可以做很多相关的批量执行服务器和自动化运维管理的任务了。

分享到:
评论

相关推荐

    python自动化运维

    Python自动化运维是现代IT环境中一个不可或缺的技术领域,它利用Python编程语言来实现系统管理、监控、部署、故障排查等一系列日常运维任务的自动化。Python因其语法简洁、库资源丰富以及跨平台性而备受青睐,成为...

    运维自动化之ANSIBLE.pdf

    与其他自动化运维工具相比,Ansible 以其易用性和广泛支持的平台脱颖而出。例如,SaltStack 提供更高的执行效率但可能需要部署 agent,Puppet 功能强大但相对复杂,适用于大型环境,而 Fabric 和 Chef 也是无代理的...

    自动化运维1

    配置管理工具如Fabric、Func、Puppet和SaltStack则负责自动化服务器的配置和管理。Fabric是一个Python库,用于执行远程命令和传输文件,方便运维人员进行批量操作。Func是Fedora项目开发的网络控制器,可实现远程...

    Ansible自动化运维实践.pptx

    Ansible是一款基于Python的自动化运维工具,它集成了其他运维工具的优点,能够实现批量系统配置、程序部署和命令执行。Ansible的核心特点是: 1. 无需在目标主机上安装代理(agent),减少了维护成本。 2. 无服务器...

    RHCE9认证之ansible6.3自动化运维实战学习

    Ansible 是一种新出现的自动化运维工具,基于 Python 开发,集合了众多运维工具(Puppet、CFEngine、Chef、Func、Fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 Ansible 的主要特点是无...

    Ansible自动化运维实践.ppt

    Ansible是一款新兴的自动化运维工具,它基于Python语言,集成了多种老牌运维工具的优点,能够执行批量系统配置、程序部署和命令运行。Ansible的核心特点是: 1. **无代理(no agents)**:在被管理主机上无需安装...

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

    Ansible是一款强大的自动化运维工具,它使用Python语言开发,整合了其他运维工具如Puppet、Chef、Func和Fabric等的优点,使得系统配置、程序部署和命令执行等任务能够批量处理。Ansible的核心特点包括它的轻量级设计...

    浅谈PYTHON在企业信息自动化运维工作中的应用.zip

    同时,Python拥有丰富的标准库和第三方库,如Numpy、Pandas和Matplotlib等,方便数据处理和可视化,而像Fabric和Ansible这样的库则专为自动化运维设计。 二、自动化脚本编写 在企业运维中,Python常用于编写自动化...

    如何利用Fabric自动化你的任务.pdf

    Fabric 是一个基于 ...通过理解和掌握 Fabric 的基本概念和函数,你可以轻松地构建起一套完善的服务器自动化流程,提高工作效率。无论是简单的单机命令还是复杂的多主机部署,Fabric 都能提供简洁而强大的解决方案。

    Python在智能化运维中的实践.zip

    3. 通过Ansible Playbook自动化执行运维任务,例如批量配置服务器、安装软件等。 4. 使用Pandas和Matplotlib分析历史性能数据,识别性能瓶颈,制定优化策略。 5. 借助TensorFlow构建预测模型,预测服务器可能出现...

    Python-Python实现跨平台批量运维小神器

    Python是一种强大的、面向对象的编程语言,尤其在自动化运维领域有着广泛的应用。"Python实现跨平台批量运维小神器"这个项目可能是一个利用Python编写的工具集,旨在帮助系统管理员进行跨平台的批量操作,提高运维...

    python运维自动化开发项目.zip

    1. **服务器管理**:Python可以编写脚本来批量执行操作系统级别的任务,如文件备份、用户管理、权限设置等。例如,通过os模块创建、删除、移动文件,使用pexpect库进行交互式命令执行,如安装软件、更新系统。 2. *...

    Python项目自动化多服务器部署的工具

    Salt Stack是一款功能强大的自动化运维工具,包括配置管理、远程执行、状态管理等。它使用轻量级的消息协议进行通信,可实现近乎实时的响应。Salt Stack的“State”系统允许你定义系统的期望状态,然后自动将系统...

    Ansible:自动化运维必须技术之一

    Ansible 是一款强大的自动化运维工具,它以轻量级、易于使用和无代理特性而备受推崇。基于Python语言,Ansible 集成了其他同类工具如 Puppet、CFEngine、Chef、Func 和 Fabric 的优势,提供了批量系统配置、程序部署...

    运维必备Python基础入门到精通

    Fabric提供了一种命令执行和部署的简单方式,而Ansible则是一个强大的配置管理工具,可以实现远程主机的批量配置和软件部署。 最后,数据分析和可视化也是运维人员提升效率的手段。Pandas库提供了高效的数据处理...

    Python库 | fabric-mgmt-cli-1.0b10.tar.gz

    在Python的世界里, Fabric是一个强大的自动化运维工具,而`fabric-mgmt-cli`则是其扩展管理命令行接口,为开发者和运维人员提供了更高效的远程执行命令、部署项目以及自动化任务的能力。本文将深入探讨`fabric-mgmt...

    linux-linux下多服务器自动连接管理工具

    为了简化这一过程,开发者们创建了各种工具,使自动化连接和管理成为可能。标题提及的“linux下多服务器自动连接管理工具”就是针对这个问题的解决方案。在Linux开发领域,这种工具通常基于SSH(Secure Shell)协议...

    5个常见运维场景,居然用 Python 轻松解决了!.docx

    在运维领域,Python 脚本可以用来实现各种自动化任务,例如连接远程服务器并执行命令、解析日志文件并提取有用信息、监控系统状态并发送警报、批量部署软件或更新系统、执行备份和恢复任务等。运用 Python 脚本可以...

    Python库 | fabric-cf-1.1b3.tar.gz

    在Python的世界里,有一款名为Fabric的库,它专为自动化运维任务和部署而设计。 Fabric-CF是Fabric的一个扩展,增加了更多功能,使得开发者和运维人员能更方便地管理远程服务器。在本文中,我们将深入探讨Fabric-CF...

    Python运维工程师12期培训教程.rar

    自动化运维是提升效率的关键。通过Python,学员将学习如何自动化执行重复任务,例如定期备份、系统更新、日志分析等。使用cron或APScheduler库可以实现定时任务,而使用 Fabric 和Paramiko库则能实现远程主机的批量...

Global site tag (gtag.js) - Google Analytics