NEWS 新闻动态 > 新闻详情

技术分享 | 基于SaltStack的自动化部署

futong 发表于:2019-10-12
摘要:SaltStack是一种基于 C/S 架构的服务器基础架构集中化管理平台,它基于Python语言实现,由轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、 python-msgpack和PyYAML等)构建,具备配置管理、远程执行、监控等功能。今天将与您分享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环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等

部署.jpg

最佳实践

富通云腾利用SaltStack自动化部署虚拟机VM 、部署监控报警、部署自定义账单等复杂性重复操作,并可以根据用户场景提供定制化服务。

  1. 系统创建与安装服务。根据用户需求自动化为用户在云平台创建虚拟机及安装操作系统、数据库、中间件等软件产品及公有云各类产品的服务。

  2. 系统升级与补丁加固服务。根据系统需求并获得用户认可后,为服务范围内的系统自动化升级及打补丁。

  3. 系统监控与报警服务。根据用户需求对系统进行监控,并对监控到的系统异常进行自动化报警。

  4. 系统运维例行操作服务。根据用户需求对系统进行自动化例行操作,如删除日志、备份数据、系统归档、巡检等。

  5. 周期性报告服务。根据用户需求对系统运行数据进行自动化收集,总结并形成分析结果,供用户参考决策。

  6. 资产管理与流程管理服务。根据用户需求建立资产数据库和配置管理数据,建立事件、配置、问题、变更、发布、服务级别等方面的管理流程,获得认可后自动化执行。

  7. 云账户管理与成本核算服务。根据用户需求对用户公有云账户消费过程进行自动化管理,对系统运行成本进行自动化核算并出具符合用户要求的成本报表,供用户参考决策。

总的来说,SaltStack具有部署简单、方便,支持大部分UNIX/Linux及Windows环境,主从集中化管理,配置简单、功能强大、扩展性强,主控端(master)和被控端(minion)基于证书认证安全可靠,支持API及自定义模块可通过Python轻松扩展等特点。通过自动化部署,不仅可以实现对业务流程的有效梳理,提高运维工作效率,还能发现潜在的问题,降低故障率,并有利于故障的快速恢复。

SaltStack可谓是运维人员提高工作效率、规范业务配置与操作的利器,它将为企业级客户自动化运维和业务迭代保驾护航。