3.6 轻量级自动化运维工具Fabric介绍
笔者公司目前的数据中心采用的是分布式部署方案,在全球多地都有数据中心。数据中心采用的是AWS EC2机器,在核心的数据中心里,EC2机器的数量比较多,基本上每个数据中心都在运行着几百台AWS EC2机器,而且业务繁忙的时候,会通过AWS AMI(Amazon系统映像)直接上线几十台相同业务的EC2机器,它们的机器类型、系统应用和配置文件基本上都是一模一样的,很多时候需要修改相同的配置文件和执行相同的操作,这个时候为了避免重复性的劳动就需要用到自动化运维工具,轻量级自动化运维工具Fabric在这里是首选。Fabric是基于Python语言开发的,是开发组同事的最爱。为了方便自动化运维,我们在每个数据中心都部署了跳板机(在跳板机上部署了Fabric),其物理拓扑图如图3-3所示。
图3-3 跳板机物理拓扑图
部署跳板机的好处有以下几点:
基于安全性考虑,只有跳板机上开放了公网IP和SSH Key登录,其他的业务机器默认只允许内网登录,公网IP地址不对外开放。
为了方便自动化运维部署,跳板机上做了免密码登录,可以直接通过SSH命令操作其他业务机器。
设置了权限控制管理,跳板机上部署了几套Key,分别对应于不同的权限分配,公司的同事可按照不同的职能获得相应的私钥登录跳板机,不同的职能分配的相应权限也是不一样的。
Fabric是基于Python(2.5及以上版本)实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它为系统提供了基础的操作组件,可以实现本地或远程Shell命令,包括文件上传、下载、脚本执行及完整执行日志输出等功能。Fabric的官方地址为http://www.fabfile.org,目前最高版本为1.30。
Amazon Linux AMI是由Amazon Web Services提供的受支持和维护的Linux映像,用于Amazon Elastic Compute Cloud(Amazon EC2)。旨在为Amazon EC2上运行的应用程序提供稳定、安全和高性能的执行环境。它支持最新的EC2实例类型功能,并包括可与AWS轻松集成的软件包。Amazon Web Services为运行Amazon Linux AMI的所有实例提供了持续的安全性和维护更新。Amazon Linux AMI对于Amazon EC2用户是免费的。