NEWS 新闻动态 > 新闻详情

技术分享 | 使用Puppet实现云资源集中管理

futong 发表于:2019-11-11
摘要:在多云时代,企业往往需要同时管理多个云平台,并实时监控分布在各种云资源里的业务使用情况。因此对于运维团队来说,如何自动化管理各类云资源,保障业务的稳定运行显得至关重要。Puppet 是一个开源的跨平台的集中化配置管理工具,有着简明的架构以及良好的扩展性,适用于管理和部署大规模集群系统。今天将与您分享Puppet在云管理服务中的应用。

系统架构与工作流

Puppet是一种Linux、Unix、windows平台的集中配置管理系统,基于Ruby语言编写,可管理配置文件、用户、cron任务、软件包、系统服务等,它的作用是管理这些资源以及资源之间的相互联系

Puppet采用C/S星状的结构,所有的客户端和一个或多个服务器交互,每个客户端周期(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。配置完成以后,Puppet客户端可以反馈给服务器端一个消息,如果出错也会给服务器端反馈一个消息。

Puppet 通过声明性、基于模型的方法进行自动化管理

定义:通过Puppet 的声明性配置语言定义基础设置配置的目标状态。

模拟:强制应用改变的配置之前先进行模拟性应用。

执行:自动、强制部署达成目标状态,纠正任何偏离的配置。

报告:报告当下状态及目标状态的不同,以及达成目标状态所进行的任何强制性改变。

最佳实践

客户端Puppet调用facter(facter是通过ssl加密收集及检测分析客户端配置信息的一个工具),facter探测出主机的一些变量,如主机名、内存大小、ip地址等。Puppet把这些信息通过ssl连接发送到服务器端。

服务器端的Puppetmaster通过facter工具分析检测客户端的主机名,然后找到项目主配置文件mainfest里面对应的node配置,并对该部分内容进行解析。facter发送过来的信息可以作为变量处理,node牵扯到的代码才解析,其他没牵涉的代码不解析。

解析的结果生成一个中间的“伪代码”,然后把伪代码发送给客户端。客户端接收到伪代码,并执行,客户端把执行的结果发送给服务器

服务器把客户端的执行结果写入日志,并发送给报告系统。

甜心场景

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

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

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

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

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

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

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

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

Puppet 是基于 Ruby 的开源系统配置和管理工具,它提供的独特的系统配置语言极大程度地简化了系统管理员管理和配置系统的过程。基于Puppet ,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模等。作为富通云腾在云管理方面使用的重要自动化运维工具,Puppet将赋能企业用户数字化转型和业务发展迭代。