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 ','[email protected]']
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(“[email protected]”)
 
defbuild_rpm()
 
run(“update_rpmall”)
 
@hosts(“[email protected]”)
 
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比较适合做状态的收敛类的操作。

你可能感兴趣的:(Fabric一个基于ssh的集群操作工具)