fablinker是什么
fablinker是一个类似ansiblek开源自动化运维工具,在一台服务器上可管理控制多个远程主机。
基于fabric开发,兼容python2.7、python3+。相对ansible和fabric,fablinker基于命令行交互式操作,使用起来更加方便快捷。
使用前首先需要确保所有机器能用ssh连接。具体使用请查看应用场景章节。
文档同步更新在github
架构图2.fablinker有哪些功能
在远程多机器执行命令
put:从本地主机上分发文件至所有远程主机get:从远程主机上收集文件至本地主机,将远程主机文件都搜集到本机并将文件重命名,带上主机名,-n参数,将远程文件名加上数字at:切换到某个单机,或者切换到某个机器组addgrp:动态机器分组fabshellcmd:在所有远程主机上执行shellcmd命令,比如ls,phptest.php,kill,ps等fabvimtest.txt:依次打开所有远程主机上的test.txt文件,可写入,更改,保存。!cmd可以在本地执行命令其中cmd.txt文件中一行一个命令
工具特点
采用命令行交互式所有命令的使用方法都可以通过输入help命令来查看返回结果有警告和错误的会以不同颜色标识所有的更改配置的操作,当程序退出时会自动保存到配置文件中需要在远程主机后台执行命令只需要加上,比如fabnohuppythonhello.py3.安装和使用
安装
方法1.下载源码安装
下载源码压缩包,解压后在目录中运行:
pythonsetup.pyinstall
方法2.pip安装
pipinstallfablinker
上面两种方法都会在当前用户的home目录下创建一个.fablinker目录,并在目录里创建默认配置文件fabconf.ini
具体路径为~/.fablinker/fabconf.ini
修改配置文件
可以到~/.fablinker修改默认配置文件fabconf.ini。直接在命令行执行fablinker,将使用默认配置文件
如果需要使用其他配置文件,可以自己创建一个文件,并在运行命令时指定该配置文件路径
fablinker-fmyconf.ini
下面是一份简单的配置文件示例,
[baseconf]user=workpassword=**parallel=False[host_groups]Group0=[...,...,...]spider=[...,...,...,...]
baseconf选项是一些基本配置
user:可用ssh登录其他机器的用户名,
password:登录密码,没有密码为空
parallel:多个远程主机是否并行运行命令,当然在用fab命令的时候可以加参数动态更改并行选项。注意fabvim命令不能并行执行,将直接导致错误!
host_groups配置主机分组,可将用于不同项目的主机分组管理。主机间用逗号分隔。
这里创建了Group0,和spider组,可以用at命令切换到不同组,操作不同的远程主机。
运行tu