异构平台文件自动同步方法及puppet服务端的制作方法

文档序号:7772419阅读:383来源:国知局
异构平台文件自动同步方法及puppet服务端的制作方法
【专利摘要】本发明实施例公开了一种异构平台文件自动同步方法及puppet服务端,其中方法包括puppet服务端接收来自puppet客户端的文件同步请求,文件同步请求至少包括:puppet客户端的操作系统和全域名fqdn;puppet服务端根据文件同步请求中的fqdn进行节点匹配;puppet服务端执行匹配到的节点程序,并在节点程序中匹配puppet客户端的操作系统;puppet服务端根据匹配到的操作系统确定文件同步位置,以生成文件同步响应并发送至puppet客户端,使puppet客户端根据所述文件同步响应进行文件同步,本发明实施例可以实现高效的异构平台文件自动同步。
【专利说明】异构平台文件自动同步方法及puppet服务端

【技术领域】
[0001] 本发明涉及文件同步【技术领域】,尤其涉及一种异构平台文件自动同步方法及 puppet服务端。

【背景技术】
[0002] 对于数据中心或各种机房的服务端,经常会涉及到与客户端进行文件同步的问 题,目前主要存在以下两种方案解决该文件同步问题:
[0003] 一种方案是采用Shell脚本+Expect脚本来实现文件的自动分发与管理,其实 现过程主要包括:服务端得到每台需要被管理的客户端操作系统的管理员账号和密码, 并保存到一个文件中;然后通过Expect脚本自动scp(SecureCopy)或rsync(remote Synchronization)来取代手动scp或rsync,达到文件同步。
[0004] 另一种方案是利用高级的脚本语言(例如Perl、Python等)并结合安装专用的模块 来实现文件自动同步,以Perl为例,服务端需要得到每台需要被管理的客户端操作系统的 管理员账号和密码,并保存到一个文件中;然后安装PerlSSH(SecureShell)等依赖模块, 并编写Perl脚本;最后通过Perl语言的多线程特性来自动同步文件到被管理的客户端。
[0005] 其中上述两种方案均存在的缺限在于:必须知道每台客户端的管理员账号与密 码,一旦客户端修改密码就会失效。另外,第一种方案无法实现跨平台的同步,例如windows 和linux就无法同步,并且无法利用多线程技术达到高效的文件自动同步;对于第二种方 案,如果采用一些兼容多种操作系统的编程语言,则可能实现跨平台的同步,例如Python forAIX,但是PythonforAIX虽然支持,也仅是兼容过时版本,且实现过于复杂(要考虑多 线程并发和同步效率等问题)及不易于实时监控与统计,另外第二种方案的多线程技术实 现给维护和管理增加了复杂性,每个维护人员必须非常熟悉Perl语言,包括SSH等相关模 块的使用。


【发明内容】

[0006] 有鉴于此,本发明提供了一种异构平台文件自动同步方法及装置,可以高效的实 现跨操作系统(也可称为平台)的文件同步,并且无需知道客户端的管理员账号和密码,所 用的语言易于掌握,复用性强。
[0007] 本发明实施例提供了一种异构平台文件自动同步方法,包括:
[0008]puppet服务端接收来自puppet客户端的文件同步请求,所述文件同步请求至少 包括:所述puppet客户端的操作系统和全域名fqdn;
[0009] 所述puppet服务端根据所述文件同步请求中的fqdn进行节点匹配;
[0010] 所述puppet服务端执行匹配到的节点程序,并在节点程序中匹配所述puppet客 户端的操作系统;
[0011] 所述puppet服务端根据匹配到的操作系统确定文件同步位置,以生成文件同步 响应并发送至所述puppet客户端,使所述puppet客户端根据所述文件同步响应进行文件 同步。
[0012] 优选的,puppet服务端根据所述文件同步请求中的fqdn进行节点匹配,包括:
[0013] 所述puppet服务端根据所述fqdn匹配具体的一台puppet客户端的节点程序、某 一种规则的puppet客户端的节点程序或者某一个指定域名的puppet客户端的节点程序。
[0014] 优选的,所述puppet服务端接收来自puppet客户端的文件同步请求之前,还包 括:
[0015] 所述puppet服务端接收来自puppet客户端的签名认证请求;
[0016] 所述puppet服务端根据所述签名认证请求,判断所述puppet客户端是否合法;
[0017] 如果合法,则所述puppet服务端对所述puppet客户端进行签名认证。
[0018] 优选的,所述puppet服务端根据匹配到的操作系统生成文件同步响应并发送至 所述puppet客户端之后,还包括:
[0019] 所述puppet服务端接收来自所述puppet客户端的文件同步报告;
[0020] 所述puppet服务端将所述文件同步报告上传至报告收集器,以使web服务器实时 从所述报告收集器获取文件同步报告并显示。
[0021] 优选的,所述文件同步报告包括:puppet客户端的IP、从puppet服务端同步的时 间、puppet客户端设备的总运行时间、puppet客户端设备的所有的可用资源列表、文件的 同步状态和同步过程中的输出日志。
[0022] 本发明实施例还提供了一种用于异构平台文件自动同步的puppet服务端,包括:
[0023] 第一接收模块,用于接收来自puppet客户端的文件同步请求,所述文件同步请求 至少包括:所述puppet客户端的操作系统和全域名fqdn ;
[0024] 第一匹配模块,用于根据所述文件同步请求中的fqdn进行节点匹配;
[0025] 第二匹配模块,用于执行匹配到的节点程序,并在节点程序中匹配所述puppet客 户端的操作系统;
[0026] 处理模块,用于根据匹配到的操作系统确定文件同步位置,以生成文件同步响应 并发送至所述puppet客户端,使所述puppet客户端根据所述文件同步响应进行文件同步。
[0027] 优选的,所述第一匹配模块,具体用于根据所述fqdn匹配具体的一台puppet客户 端的节点程序、某一种规则的puppet客户端的节点程序或者某一个指定域名的puppet客 户端的节点程序。
[0028] 优选的,puppet服务端还包括:
[0029] 第二接收模块,用于接收来自puppet客户端的签名认证请求;
[0030] 判断模块,用于根据所述签名认证请求,判断所述puppet客户端是否合法;
[0031] 认证模块,用于如果合法,则对所述puppet客户端进行签名认证。
[0032] 优选的,puppet服务端还包括:
[0033] 第三接收模块,用于接收来自所述puppet客户端的文件同步报告;
[0034] 上报模块,用于将所述文件同步报告上传至报告收集器,以使web服务器实时从 所述报告收集器获取同步报告并显示。
[0035] 优选的,所述Puppet客户端的IP、从Puppet客户端同步的时间、Puppet客户端的 总运行时间、Puppet客户端的所有的可用资源列表、文件的同步状态和同步过程中的输出 日志。
[0036] 本发明的有益效果:
[0037] 本发明实施例,由于puppet服务端与puppet客户端自动进行文件同步时,首先进 行节点匹配,然后在匹配到的节点程序中进行操作系统匹配,以此确定puppet客户端将同 步文件存放的位置,从而针对不同平台的puppet客户端,实现准确的文件同步,从而使得 本发明实施例可以支持跨多个操作系统实现文件同步;同时,采用puppet进行文件同步, 可以利用puppet内部提供的高效的文件同步机制,实现高效的文件同步;同时puppet无须 puppet客户端的管理员账号和密码就可以进行同步;同时puppet所用的语言易于阅读和 掌握,即使是新手,通过简单的培训也能轻易掌握,从而降低使用者的操作复杂性和简化工 作量;同时puppet的复用性也很高,便于移植。

【专利附图】

【附图说明】
[0038] 下面结合附图和实施例对本发明作进一步描述:
[0039] 图1是本发明的异构平台自动同步架构的实施例的结构示意图。
[0040] 图2是本发明的异构平台自动同步方法的第一实施例的流程示意图。
[0041] 图3是本发明的异构平台自动同步方法的第二实施例的流程示意图。
[0042] 图4是本发明的异构平台自动同步方法的第三实施例的流程示意图。
[0043] 图5是本发明的异构平台自动同步方法的第四实施例的流程示意图。
[0044] 图6是本发明的用于异构平台自动同步的puppet服务端的第一实施例的结构示 意图。
[0045] 图7是本发明的用于异构平台自动同步的puppet服务端的第二实施例的结构示 意图。
[0046] 图8是本发明的用于异构平台自动同步的puppet服务端的第三实施例的结构示 意图。

【具体实施方式】
[0047]puppet是puppetLabs开发的自动化系统配置工具,它是一个开源的软件自动 化配置和部署工具,其使用方式简单且功能强大。在puppet中,采用了非常简单的c/s (client/server,客户端/服务端)星状结构,所有数据的交互都通过SSL(SecureSockets Layer,安全套接层)进行,以保证安全;其主要包含puppet服务端,即"puppetmaster" 或"puppetserver",和puppet客户端,即"puppetagent",其中puppet服务端是所有的 puppet客户端都要与之通讯和同步的服务器,puppet客户端是被管理或同步的服务器。其 中,puppet大致的工作流程为:
[0048] 1、puppet客户端向puppet服务端发起认证请求,或使用带签名的证书。
[0049] 2、puppet服务端告诉puppet客户端你是合法的。
[0050] 3、puppet客户端调用Facter,Facter探测出主机的一些变量,例如主机名、内存 大小、IP地址等。puppet客户端将这些信息通过SSL连接发送到服务器端。
[0051] 4、puppet服务器端检测客户端的主机名,然后找到manifest对应的node配置,并 对该部分内容进行解析。Facter送过来的信息可以作为变量处理,node牵涉到的代码才解 析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错; 如果语法没错,就继续解析,解析的结果生成一个中间的"伪代码"(catelog),然后把伪代 码发给puppet客户端。
[0052] 5、puppet客户端接收到"伪代码",并且执行。
[0053] 6、puppet客户端在执行时判断有没有File文件,如果有,则向fileserver发起 请求。
[0054] 7、puppet客户端判断有没有配置Report,如果已配置,则把执行结果发送给 puppet服务端。
[0055] 8、puppet服务端把puppet客户端的执行结果写入日志,并发送给报告系统。
[0056] 下面首先对本发明实施例的异构平台自动同步架构进行说明。
[0057] 如图1所示,本发明实施例的异构平台自动同步架构包含puppet服务端和众多的 puppet客户端,这些puppet客户端可以运行不同的操作系统,该puppet服务端实现对这 些跨操作系统的puppet客户端的管理和同步。另外,本发明实施例还设置了报告收集器和 web服务器,其中报告收集器主要用于从puppet服务端收集和记录同步报告,web服务器主 要用于展示同步报告,便于使用者查看同步的状态和信息。
[0058] 下面再具体的对本发明提出的异构平台文件自动同步方法的实施例进行说明。
[0059] 请参考图2,是本发明提供的异构平台文件自动同步方法的第一实施例的流程示 意图。其主要包括:
[0060] 步骤S21、puppet服务端接收来自puppet客户端的同步请求。
[0061] 其中,该同步请求包含客户端的基础信息,该基础信息可以包括:平台架构(即: 各种处理器架构及各种操作系统)、硬盘、用户、网络、内核及版本、CPU相关信息(CPU类型、 多少核)、Mac地址、内存(包括swap)、fqdn(FullyQualifiedDomainName,全域名)、主 机名(hostname)、环境变量、防火墙、正常运行时间(uptime)、安全外壳协议密钥(SSHKey) 和时区等。
[0062] 步骤S22、puppet服务端根据同步请求中的fqdn进行节点匹配。
[0063] 具体的,puppet服务端可以根据fqdn匹配具体的一台puppet客户端的节点程序、 某一种规则的puppet客户端的节点程序或者某一个指定域名的puppet客户端的节点程 序,也就是说,步骤S22可以采用如下任一种匹配规则:1)可匹配具体的一台客户端,例如 匹配exampleOOl. domain, com。2)可匹配某一种规则的客户端,例如匹配所有WEB服务器: 厂web\d+\. domain\. com$/,这样所有以web+数字?domain, com的fqdn都能匹配到。3)可 匹配某一个指定域名的客户端,例如匹配所有数据库规则:*. db. domain, com。
[0064] 步骤S23、puppet服务端执行匹配到的节点程序,并在节点程序中匹配puppet客 户端的操作系统。
[0065]其中,进行操作系统的匹配主要是为了确定同步文件的位置,因为不同的操作系 统存储的位置可能不同,例如:Windows与Linux的文件存放路径各不相同,以hosts文 件为例,其在Linux中的的路径为:/etc/hosts,而在Windows的路径为:C: \Windows\ System32\Drivers\etc\hosts,进行操作系统的匹配是能否实现文件的准确分发的关键。 [0066] 步骤S24、puppet服务端根据匹配到的操作系统确定文件同步位置,以生成文件 同步响应并发送至puppet客户端,使puppet客户端根据文件同步响应进行文件同步。 [0067] 本实施例中,可以支持跨平台的同步,也就是puppet客户端的操作系统可以为 如下任一种:RHEL5、RHEL6、CentOS、Fedora、OracleLinux、Debian6、Debian7、Ubuntu、SUSE、Gentoo、ArchLinux、FreeBSD、OpenBSD、Mac0S、0racleSolaris、IBMAIX、HP-UX和 Windows。
[0068] 本发明实施例,由于puppet服务端与puppet客户端自动进行文件同步时,首先进 行节点匹配,然后在节点程序中进行操作系统匹配,以此确定puppet客户端将同步文件存 放的位置,从而实现针对不同平台的puppet客户端,进行准确的文件同步,从而使得本发 明实施例可以跨多个操作系统实现文件同步,使得本发明实施例可以跨多个操作系统实现 文件同步;同时,采用puppet进行文件同步,可以利用puppet内部提供的高效的文件同步 机制,实现高效的文件同步;同时puppet无须puppet客户端的管理员账号和密码就可以进 行同步;同时puppet所用的语言易于阅读和掌握,即使是新手,通过简单的培训也能轻易 掌握,从而降低使用者的操作复杂性和简化工作量;同时puppet的复用性也很高,便于移 植。
[0069] 请参考图3,是本发明提供的异构平台文件自动同步方法的第二实施例的流程示 意图,其主要包括:
[0070] 步骤S31、puppet服务端接收来自puppet客户端的签名认证请求。
[0071] 步骤S32、puppet服务端收到签名认证请求后,判断puppet客户端是否合法,如果 合法,则对puppet客户端进行签名认证。
[0072] 与步骤S21 -步骤S24相同的步骤S33 -步骤S36,在此不赘述。
[0073] 请参考图4,是本发明提供的异构平台文件自动同步方法的第三实施例的流程示 意图,其主要包括:
[0074] 与步骤S21 -步骤S24相同的步骤S41 -步骤S44,在此不赘述。
[0075] 步骤S45、puppet服务端收集来自puppet客户端的文件同步报告。
[0076] 步骤S46、pUppet服务端将文件同步报告上传至报告收集器,以使web服务器实时 从报告收集器获取文件同步报告并显示。
[0077] 其中,文件同步报告包括:Puppet客户端的IP、从Puppet客户端同步的时间、 Puppet客户端的总运行时间、Puppet客户端的所有的可用资源列表、文件的同步状态和同 步过程中的输出日志。
[0078] 本实施例,采用第三方的开源WebServer(即Nginx),可以方便运维人员与管理 人员及时掌握文件同步状态及相关信息,避免采用Puppet内置的WebServer对于众多的 客户端管理起来效率低的问题。
[0079] 请参考图5,是本发明提供的异构平台文件自动同步方法的第四实施例的流程示 意图,其主要包括:
[0080]步骤S51、在puppet服务端安装puppetmaster,puppetmaster即puppet服务 端程序。
[0081] 其中,安装方式可以选择源码安装或二进制安装,对于采用windows的puppet服 务端,仅能实现二进制安装。
[0082] 步骤S52、设置puppetmaster的初始化环境。
[0083] 其中,步骤S52主要包含:
[0084] 1)安装ntpd(时钟同步),以保证puppet服务端的时区、日期和时间均准确,对于 采用windows的puppet服务端,可以用其自身时间同步。
[0085] 2)在puppet,conf(puppet主配置文件)中设置autosign(自动签名,默认为 false)、modulepath(模块入 口路径)、reports(同步报告,默认为false),以及fileserver. conf,puppetfileserver指定了各个文件挂载(mount)点及文件绝对路径、哪些puppet 客户端是允许被挂载的等。
[0086]步骤S53、在puppet客户端安装puppetagent,puppetagent即puppet客户端程 序。
[0087] 其中,安装方式可以选择源码或二进制安装,对于采用windows的puppet客户端, 只能选择二进制安装。
[0088] 步骤S54、设置puppetagent的初始化环境。
[0089] 其中,步骤S54主要包括:
[0090] 1)安装ntpd,以保证puppet客户端的时区、日期和时间均准确,对于采用windows 的puppet客户端,可以用其自身时间同步;由于puppet服务端和puppet客户端均安装了 ntpd,因此能够确保两者时间一致。
[0091] 2)修改puppetagent主配置文件的以下选项:server(由puppetmaster的 $puppetserver决定)、certname(证书名称,石角保agentP隹一性)、runinterval(puppet agent运行的时间间隔)、reports(同步报告,默认为false)。
[0092] 在2)中,runinterval默认为30分钟,可以对其修改进行优化实现管理更多的 puppet客户端,例如:Puppet同步一个文件几乎是秒级,但如果管理的客户端达到千万台, 就需要将客户端尽量避免在同一时刻来请求服务器,此时可以采用分类设置runinterval 的方式实现,例如:将/etc/hosts文件设置成5分钟同步一次,将HostGroupl设置每30秒 同步,HostGroup2设置40秒同步,依次类推。
[0093] 步骤S55、puppet客户端主动请求puppet服务端的签名认证。
[0094] 其中,第一次请求成功后,以后不再需要请求签名认证,除非puppet服务端保存 证书有变化或已被损毁。
[0095] 步骤S56、puppet服务端收到puppet客户端的签名认证请求后,确定puppet客户 端是否为合法的puppet客户端,如果是,则对其进行签名。
[0096]步骤S57、创建puppetmodule(即:puppet模块)。
[0097] 其中,puppetmodule中明确以下两方面内容:
[0098] 1)同一规则的puppet客户端可以共享一个文件,以用于节点匹配。

【权利要求】
1. 一种异构平台文件自动同步方法,其特征在于:包括: puppet服务端接收来自puppet客户端的文件同步请求,所述文件同步请求至少包括: 所述puppet客户端的操作系统和全域名fqdn ; 所述puppet服务端根据所述文件同步请求中的fqdn进行节点匹配; 所述puppet服务端执行匹配到的节点程序,并在节点程序中匹配所述puppet客户端 的操作系统; 所述puppet服务端根据匹配到的操作系统确定文件同步位置,以生成文件同步响应 并发送至所述puppet客户端,使所述puppet客户端根据所述文件同步响应进行文件同步。
2. 如权利要求1所述的异构平台文件自动同步方法,其特征在于:所述puppet服务端 根据所述文件同步请求中的fqdn进行节点匹配,包括: 所述puppet服务端根据所述fqdn匹配具体的一台puppet客户端的节点程序、某一种 规则的puppet客户端的节点程序或者某一个指定域名的puppet客户端的节点程序。
3. 如权利要求1或2所述的异构平台文件自动同步方法,其特征在于:所述puppet服 务端接收来自puppet客户端的文件同步请求之前,还包括: 所述puppet服务端接收来自puppet客户端的签名认证请求; 所述puppet服务端根据所述签名认证请求,判断所述puppet客户端是否合法; 如果合法,则所述puppet服务端对所述puppet客户端进行签名认证。
4. 如权利要求1或2所述的异构平台文件自动同步方法,其特征在于:所述puppet服 务端根据匹配到的操作系统生成文件同步响应并发送至所述puppet客户端之后,还包括: 所述puppet服务端接收来自所述puppet客户端的文件同步报告; 所述puppet服务端将所述文件同步报告上传至报告收集器,以使web服务器实时从所 述报告收集器获取文件同步报告并显示。
5. 如权利要求4所述的异构平台文件自动同步方法,其特征在于:所述文件同步报告 包括:puppet客户端的IP、从puppet服务端同步的时间、puppet客户端设备的总运行时 间、puppet客户端设备的所有的可用资源列表、文件的同步状态和同步过程中的输出日志。
6. -种用于异构平台文件自动同步的puppet服务端,其特征在于:包括: 第一接收模块,用于接收来自puppet客户端的文件同步请求,所述文件同步请求至少 包括:所述puppet客户端的操作系统和全域名fqdn ; 第一匹配模块,用于根据所述文件同步请求中的fqdn进行节点匹配; 第二匹配模块,用于执行匹配到的节点程序,并在节点程序中匹配所述puppet客户端 的操作系统; 处理模块,用于根据匹配到的操作系统确定文件同步位置,以生成文件同步响应并发 送至所述puppet客户端,使所述puppet客户端根据所述文件同步响应进行文件同步。
7. 如权利要求6所述的用于异构平台文件自动同步的puppet服务端,其特征在于:所 述第一匹配模块,具体用于根据所述fqdn匹配具体的一台puppet客户端的节点程序、某一 种规则的puppet客户端的节点程序或者某一个指定域名的puppet客户端的节点程序。
8. 如权利要求6或7所述的用于异构平台文件自动同步的puppet服务端,其特征在 于:还包括: 第二接收模块,用于接收来自puppet客户端的签名认证请求; 判断模块,用于根据所述签名认证请求,判断所述puppet客户端是否合法; 认证模块,用于如果合法,则对所述puppet客户端进行签名认证。
9. 如权利要求6或7所述的用于异构平台文件自动同步的puppet服务端,其特征在 于:还包括: 第三接收模块,用于接收来自所述puppet客户端的文件同步报告; 上报模块,用于将所述文件同步报告上传至报告收集器,以使web服务器实时从所述 报告收集器获取同步报告并显示。
10. 如权利要求9所述的用于异构平台文件自动同步的puppet服务端,其特征在于: 所述puppet客户端的IP、从puppet客户端同步的时间、puppet客户端的总运行时间、 puppet客户端的所有的可用资源列表、文件的同步状态和同步过程中的输出日志。
【文档编号】H04L29/08GK104519100SQ201310456772
【公开日】2015年4月15日 申请日期:2013年9月29日 优先权日:2013年9月29日
【发明者】黄庚根 申请人:重庆新媒农信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1