Fabric一个基于ssh的集群操作工具

 Fabric是一个python命令行工具,通过ssh来部署应用或者完成常规运维任务。我们在日常工作中经常会登录多台机器完成混合任务,很多时候这些任务都是重复的,让这些工作占据大脑和时间是不值得的。

       利用Fabric能解放我们的这些时间,让我们的工作更有效率。

新手教程

安装Fabric : pip install fabric

生成一个fabfile.py,这是我们的主文件。

场景1. 我们启动了几台虚拟机,我们希望加入一些常用工具,做一些初始化工作。

1
2
3
4
5
6
7
8
fromfabric.apiimportrun, env, roles
env.hosts=['root @localhost ','root@192.168.10.11']
defdo_init():
    run('sudo apt-get install -y git vim iotop')
    run('git config --global alias.co checkout')
    run('git config --global alias.br branch')
    run('git config --global alias.ci commit')
    run('git config --global --list')

 在项目目录下 fab do_init

 这时候就在这两台机器上做好修改了,在机器很多的情况下非常好用。

场景2. 因为有些原因我们有一个手动任务,需要在不同的机器上执行命令并且查看结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fromfabric.apiimportrun, env, roles
 
@hosts(“root@aaa.bbb.ccc”)
 
defbuild_rpm()
 
run(“update_rpmall”)
 
@hosts(“root@bbb.ccc.ddd”)
 
defgenerate_iso()
 
run(“generate iso”)
 
defdeploy_iso()
 
build_rpm()
 
generate_iso()

基本概念解释

1. env:fabric中的全局设置,设置hosts,role以及执行策略。

2. hosts:主机列表,命令会默认在这些主机上执行,给函数加上hosts装饰参数时可以限制某一个任务在哪些机器上执行。

3. fabfile:用来被fabric加载的入口程序

官方文档

http://docs.fabfile.org/en/1.8/

总结

      fabric 是一个适用于平时运维工作的工具,可以把与时间无关的重复性工作写成程序,将平时的很多工作都自动化。

      fabric与puppet相比更适合做一些临时的任务性质的操作,而puppet比较适合做状态的收敛类的操作。

转载于:https://my.oschina.net/renguijiayi/blog/222972

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值