';
技术分享 | 基于SaltStack的自动化部署
架构与配置
SaltStack是基于C/S服务模式,在该架构中,服务器端叫做Master,客户端叫做Minion。传统的C/S模式是客户端发送请求给服务器端,服务器端接受到来自客户端的请求并处理完成后再返回客户端。在SaltStack架构中,不仅有传统的C/S服务模式,而且有消息队列中的发布与订阅(pub/sub)服务模式,目前我们一般用其C/S架构做批量管理。它的组件包括如下:
Master,控制中心,salt命令运行和资源状态管理端
Minions,需要管理的客户端机器,会主动连接master端,并从master端得到资源状态信息,同步资源管理信息
States,配置管理的指令集
Grains, minion端的静态变量
Pillar,minion端的动态变量
Highstate,给minion永久添加状态,从sls配置文件读取
salt schedule,自动保持客户端配置
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等。
最佳实践
富通云腾利用SaltStack自动化部署虚拟机VM 、部署监控报警、部署自定义账单等复杂性重复操作,并可以根据用户场景提供定制化服务。
系统创建与安装服务。根据用户需求自动化为用户在云平台创建虚拟机及安装操作系统、数据库、中间件等软件产品及公有云各类产品的服务。
系统升级与补丁加固服务。根据系统需求并获得用户认可后,为服务范围内的系统自动化升级及打补丁。
系统监控与报警服务。根据用户需求对系统进行监控,并对监控到的系统异常进行自动化报警。
系统运维例行操作服务。根据用户需求对系统进行自动化例行操作,如删除日志、备份数据、系统归档、巡检等。
周期性报告服务。根据用户需求对系统运行数据进行自动化收集,总结并形成分析结果,供用户参考决策。
资产管理与流程管理服务。根据用户需求建立资产数据库和配置管理数据,建立事件、配置、问题、变更、发布、服务级别等方面的管理流程,获得认可后自动化执行。
云账户管理与成本核算服务。根据用户需求对用户公有云账户消费过程进行自动化管理,对系统运行成本进行自动化核算并出具符合用户要求的成本报表,供用户参考决策。
总的来说,SaltStack具有部署简单、方便,支持大部分UNIX/Linux及Windows环境,主从集中化管理,配置简单、功能强大、扩展性强,主控端(master)和被控端(minion)基于证书认证安全可靠,支持API及自定义模块可通过Python轻松扩展等特点。通过自动化部署,不仅可以实现对业务流程的有效梳理,提高运维工作效率,还能发现潜在的问题,降低故障率,并有利于故障的快速恢复。
SaltStack可谓是运维人员提高工作效率、规范业务配置与操作的利器,它将为企业级客户自动化运维和业务迭代保驾护航。