CN109947494A - 一种配置文件的管理方法和装置 - Google Patents
一种配置文件的管理方法和装置 Download PDFInfo
- Publication number
- CN109947494A CN109947494A CN201711384540.4A CN201711384540A CN109947494A CN 109947494 A CN109947494 A CN 109947494A CN 201711384540 A CN201711384540 A CN 201711384540A CN 109947494 A CN109947494 A CN 109947494A
- Authority
- CN
- China
- Prior art keywords
- file
- template
- server
- configuration file
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种配置文件的管理方法和装置。所述方法包括:利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器;在文件服务器上构建配置文件的模板文件,模板文件包含待配置的变量参数;通过配置模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件;利用Ansible工具将所述模板副本文件下发给相应的目标服务器。本申请通过将集群系统中的配置文件模板化和变量化,实现对配置文件的精准、便捷管理,以加速配置文件的维护与分发。
Description
技术领域
本申请涉及服务器运维技术领域,特别涉及一种配置文件的管理方法和装置。
背景技术
随着企业信息化的不断发展与演进,云计算、大数据的广泛应用,企业不能将用于较少数量的服务器的运维方案应用到成百上千台服务器的运维中,也不能将用于维护传统的数据库的传统运维方案应用到具有大数据量的Redis、Hadoop、Storm等系统中。
特别是由管理员逐一登录服务器进行配置管理的运维方案已经不能满足分布式、大数据量的应用系统,运维工作变为复杂、繁琐、艰巨。
发明内容
本申请提供了一种配置文件的管理方法和装置,实现对集群系统的配置文件的集中管理。
为达到上述目的,本申请的技术方案是这样实现的:
一方面,本申请提供了一种配置文件的管理方法,所述方法包括:
利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器;
在文件服务器上构建所述配置文件的模板文件,模板文件包含待配置的变量参数;
通过配置所模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件;
利用Ansible工具将所述模板副本文件下发给相应的目标服务器。
另一方面,本申请提供了一种配置文件的管理装置,所述装置包括:
文件传输单元,用于利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器;
模板构建单元,用于在文件服务器上构建所述配置文件的模板文件,所述模板文件包含待配置的变量参数;
文件处理单元,用于通过配置所述模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件;
文件下发单元,用于利用Ansible工具将所述模板副本文件下发给相应的目标服务器。
本申请的有益效果是:本申请通过利用Ansible工具将集群系统中被管理的配置文件统一发送到设定的文件服务器,在文件服务器上构建配置文件的模板文件,在需要对集群系统的各个服务器进行配置时,通过对模板文件中的变量参数进行配置得到每个目标服务器的模板副本文件,利用Ansible工具将模板副本文件批量下发给相应的目标服务器,实现对集群系统的批量配置。
本申请通过将集群系统中的配置文件模板化和变量化,实现对配置文件的精准、便捷管理,以加速配置文件的维护与分发。
附图说明
图1为本申请实施例提供的配置文件的管理方法流程图;
图2为本申请实施例提供的配置文件的管理装置的结构示意图;
图3为本申请实施例提供的配置文件的管理装置的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本申请实施例提供的配置文件的管理方法流程图,如图1所示,本申请实施例的方法包括:
S110,利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器。
可以通过在Ansible工具中添加集群系统中各个服务器的认证信息,如IP、登录账号、登录密码等将集群系统中被管理的配置文件发送到文件服务器上。
Ansible工具是一种服务器自动化运维工具,基于Python开发,集合了puppet、cfengine、chef、func、fabric等运维工具的优点,具有批量系统配置、批量程序部署、批量运行命令等功能。
S120,在文件服务器上构建配置文件的模板文件,所述模板文件包含待配置的变量参数。
本申请实施例在文件服务器上解析配置文件,抽取配置文件中的差异部分形成变量,抽取配置文件中的相同部分形成模板文件,形成的模板文件包含对变量的引用,即包含待配置的变量参数。
本申请在构建模板文件时,可以利用自定义的文件比对工具批量地对配置文件进行解析比较,以抽取差异部分和相同部分。
S130,通过配置模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件。
本申请实施例可以构建可视化的Web页面,在Web页面上对模板文件的变量参数进行配置,使本申请实施例的管理方法更加友好。
S140,利用Ansible工具将模板副本文件下发给相应的目标服务器。
由于目标服务器在接收模板副本文件时会覆盖相应的目标文件,本申请实施例在利用Ansible工具将模板副本文件下发给相应的目标服务器之前,还利用Ansible工具备份每个目标服务器的目标文件,使得在模板副本文件下发失败时进行还原处理。
本申请实施例通过利用Ansible工具将集群系统中被管理的配置文件统一发送到设定的文件服务器,在文件服务器上构建配置文件的模板文件,在需要对集群系统的各个服务器进行配置时,通过对模板文件中的变量参数进行配置得到每个目标服务器的模板副本文件,利用Ansible工具将模板副本文件批量下发给相应的目标服务器,实现对集群系统的批量配置。
本申请实施例通过将集群系统中的配置文件模板化和变量化,实现对配置文件的精准、便捷管理,以加速配置文件的维护与分发。
本申请实施例为了后续在文件服务器上构建配置文件的模板文件,需要对配置文件进行分组,如将相同作用的配置文件分为一组,或者将相同类型的配置文件分为一组,以对每组的配置文件构建模板文件。
本申请实施例可以通过下述两种方式中的任一种在文件服务器上实现配置文件的分组保存。
方式一:
获取集群系统中被管理的配置文件所在的分组,可以按照配置文件的作用或者配置文件的类型对被管理的配置文件进行分组;
利用Ansible将处于同一分组的被管理的配置文件发送到文件服务器,同一分组的配置文件保存在文件服务器的同一存储空间。
方式二:
利用Ansible将集群系统中被管理的全部配置文件发送到文件服务器,在文件服务器上按照预设分组方法对配置文件进行分组,并将同一组的配置文件保存在文件服务器的同一存储空间;其中预设分组方法可以是按照配置文件的作用或者按照配置文件的类型。
本申请实施例在文件服务器上构建配置文件的模板文件可以理解为,分别为每个分组的配置文件构建模板文件。
本申请实施例在构建配置文件的模板文件之后,获取集群系统的各个目标服务器对应的各个变量参数的参数值,根据获取到的各个变量参数的参数值生成各个变量参数的参数值序列;根据各个变量参数的参数值序列和模板文件生成模板文件的基线文件;利用Ansible工具为每个目标服务器生成待填充的模板副本文件,并依据基线文件将每个目标服务器对应的各个变量参数值填充到相应的待填充的模板副本文件中,得到每个目标服务器的模板副本文件。
示例性地,以变量参数为IP为例,需要对集群系统的服务器A1,服务器A2至服务器A100共一百台服务器进行配置管理,先获取这一百台服务器对应的IP地址,将获取到的100个IP地址构建成IP地址序列;然后,基于IP地址序列和模板文件(该模板文件包括IP变量参数)生成该模板文件的基线文件。对已生成基线文件的模板文件执行Ansible工具的下发文件指令,Ansible工具为这一百个目标服务器分别生成相应的待填充模板副本文件,再依据基线文件将每个目标服务器对应的IP变量参数值填充到相应的待填充模板副本文件,得到每个目标服务器的模板副本文件,将模板副本文件下发到目标服务器即可实现集群系统的批量配置。
与本申请配置文件的管理方法相对应的,本申请实施例还提供了配置文件的管理装置。
图2为本申请实施例提供的配置文件的管理装置的结构示意图,如图2所示,本申请实施例的管理装置20包括:
文件传输单元21,用于利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器;
模板构建单元22,用于在文件服务器上构建所述配置文件的模板文件,所述模板文件包含待配置的变量参数;
文件处理单元23,用于通过配置模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件;
文件下发单元24,用于利用Ansible工具将所述模板副本文件下发给相应的目标服务器。
由于目标服务器在接收模板副本文件时会覆盖相应的目标文件,本申请实施例的管理装置20还包括:备份管理单元用于利用Ansible工具备份每个目标服务器的目标文件。
在本申请的一个实施例中,模板构建单元22具体是用于在所述文件服务器上解析所述配置文件,抽取所述配置文件中的差异部分形成变量,抽取所述配置文件中的相同部分形成所述模板文件。
文件处理单元23包括:第一处理模块、第二处理模块和第三处理模块;
第一处理模块,用于获取集群系统的各个目标服务器对应的各个变量参数的参数值,根据获取到的各个变量参数的参数值生成各个变量参数的参数值序列;
第二处理模块,用于根据所述各个变量参数的参数值序列和所述模板文件生成所述模板文件的基线文件;
第三处理模块,用于利用所述Ansible工具为每个目标服务器生成待填充的模板副本文件,并依据所述基线文件将每个目标服务器对应的各个变量参数值填充到相应的待填充的模板副本文件中,得到每个目标服务器的模板副本文件。
在本申请的一个实施例中,文件传输单元21可以获取集群系统中被管理的配置文件所在的分组,利用Ansible工具将处于同一分组的被管理的配置文件发送到所述文件服务器,同一分组的配置文件保存在文件服务器的同一存储空间,实现配置文件在文件服务器上分组保存。
或者,文件传输单元21还可以利用Ansible工具将集群系统中被管理的全部配置文件发送到文件服务器;相应的,文件处理单元23在文件服务器上按照预设分组方法对配置文件进行分组,并将同一组的配置文件保存在、文件服务器的同一存储空间,由此实现配置文件在文件服务器上分组保存。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请提供的配置文件的管理装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,参照图3所示,本申请提供的配置文件的管理装置20可包括处理器301、存储有机器可执行指令的机器可读存储介质302。处理器301与机器可读存储介质302可经由系统总线303通信。并且,通过读取并执行机器可读存储介质4302中与配置文件的管理逻辑对应的机器可执行指令,处理器301可执行上文描述的配置文件的管理方法。
本申请中提到的机器可读存储介质302可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
根据本申请公开的示例,本申请还提供了一种包括机器可执行指令的机器可读存储介质,例如图3中的机器可读存储介质302,所述机器可执行指令可由配置文件的管理装置20中的处理器301执行以实现以上描述的配置文件的管理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种配置文件的管理方法,其特征在于,所述方法包括:
利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器;
在所述文件服务器上构建所述配置文件的模板文件,所述模板文件包含待配置的变量参数;
通过配置所述模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件;
利用所述Ansible工具将所述模板副本文件下发给相应的目标服务器。
2.根据权利要求1所述的配置文件的管理方法,其特征在于,所述在所述文件服务器上构建所述配置文件的模板文件,包括:
在所述文件服务器上解析所述配置文件,抽取所述配置文件中的差异部分形成变量,抽取所述配置文件中的相同部分形成所述模板文件。
3.根据权利要求1所述的配置文件的管理方法,其特征在于,所述通过配置所述模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件,包括:
获取集群系统的各个目标服务器对应的各个变量参数的参数值,根据获取到的各个变量参数的参数值生成各个变量参数的参数值序列;
根据所述各个变量参数的参数值序列和所述模板文件生成所述模板文件的基线文件;
利用所述Ansible工具为每个目标服务器生成待填充的模板副本文件,并依据所述基线文件将每个目标服务器对应的各个变量参数值填充到相应的待填充的模板副本文件中,得到每个目标服务器的模板副本文件。
4.根据权利要求1所述的配置文件的管理方法,其特征在于,在利用所述Ansible工具将所述模板副本文件下发给相应的目标服务器之前,所述方法还包括:
利用所述Ansible工具备份每个目标服务器的目标文件。
5.根据权利要求1所述的配置文件的管理方法,其特征在于,所述利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器,包括:
获取集群系统中被管理的配置文件所在的分组,利用所述Ansible工具将处于同一分组的被管理的配置文件发送到所述文件服务器,同一分组的所述配置文件保存在所述文件服务器的同一存储空间;
或者,利用所述Ansible工具将集群系统中被管理的全部配置文件发送到文件服务器,在所述文件服务器上按照预设分组方法对配置文件进行分组,并将同一组的配置文件保存在所述文件服务器的同一存储空间。
6.一种配置文件的管理装置,其特征在于,所述装置包括:
文件传输单元,用于利用Ansible工具将集群系统中被管理的配置文件发送到文件服务器;
模板构建单元,用于在所述文件服务器上构建所述配置文件的模板文件,所述模板文件包含待配置的变量参数;
文件处理单元,用于通过配置所述模板文件的待配置的变量参数获得相应于集群系统的每个目标服务器的模板副本文件;
文件下发单元,用于利用所述Ansible工具将所述模板副本文件下发给相应的目标服务器。
7.根据权利要求6所述的配置文件的管理装置,其特征在于,
所述模板构建单元,用于在所述文件服务器上解析所述配置文件,抽取所述配置文件中的差异部分形成变量,抽取所述配置文件中的相同部分形成所述模板文件。
8.根据权利要求6所述的配置文件的管理装置,其特征在于,所述文件处理单元包括:
第一处理模块,用于获取集群系统的各个目标服务器对应的各个变量参数的参数值,根据获取到的各个变量参数的参数值生成各个变量参数的参数值序列;
第二处理模块,用于根据所述各个变量参数的参数值序列和所述模板文件生成所述模板文件的基线文件;
第三处理模块,用于利用所述Ansible工具为每个目标服务器生成待填充的模板副本文件,并依据所述基线文件将每个目标服务器对应的各个变量参数值填充到相应的待填充的模板副本文件中,得到每个目标服务器的模板副本文件。
9.根据权利要求6所述的配置文件的管理装置,其特征在于,所述装置还包括:
备份管理单元,用于利用所述Ansible工具备份每个目标服务器的目标文件。
10.根据权利要求6所述的配置文件的管理装置,其特征在于,
所述文件传输单元,用于获取集群系统中被管理的配置文件所在的分组,利用所述Ansible工具将处于同一分组的被管理的配置文件发送到所述文件服务器,同一分组的所述配置文件保存在所述文件服务器的同一存储空间;
或者,
所述文件传输单元,用于利用所述Ansible工具将集群系统中被管理的全部配置文件发送到文件服务器;
所述文件处理单元,用于在所述文件服务器上按照预设分组方法对配置文件进行分组,并将同一组的配置文件保存在所述文件服务器的同一存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384540.4A CN109947494B (zh) | 2017-12-20 | 2017-12-20 | 一种配置文件的管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384540.4A CN109947494B (zh) | 2017-12-20 | 2017-12-20 | 一种配置文件的管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947494A true CN109947494A (zh) | 2019-06-28 |
CN109947494B CN109947494B (zh) | 2022-05-17 |
Family
ID=67004858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711384540.4A Active CN109947494B (zh) | 2017-12-20 | 2017-12-20 | 一种配置文件的管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947494B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866082A (zh) * | 2020-06-22 | 2020-10-30 | 远光软件股份有限公司 | 一种基于目标系统配置的数据分发方法和装置 |
CN112383613A (zh) * | 2020-11-11 | 2021-02-19 | 杭州飞致云信息科技有限公司 | 容器集群系统的管理方法和装置 |
CN113556250A (zh) * | 2021-07-21 | 2021-10-26 | 中国工商银行股份有限公司 | 一种网络设备批量配置方法及装置 |
CN115080152A (zh) * | 2022-08-19 | 2022-09-20 | 飞狐信息技术(天津)有限公司 | 消息中间件的Broker配置方法、装置、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050065993A1 (en) * | 2003-09-18 | 2005-03-24 | Masanori Honda | Job network configuration file creating device and creating method |
CN102508669A (zh) * | 2011-11-14 | 2012-06-20 | 浙江鸿程计算机系统有限公司 | 一种程序代码自动生成方法 |
CN107092489A (zh) * | 2017-04-13 | 2017-08-25 | 中国联合网络通信集团有限公司 | 基于应用版本发布的处理方法和系统 |
CN107294750A (zh) * | 2016-04-01 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种云集群能自识别的分布配置管理方法和装置 |
-
2017
- 2017-12-20 CN CN201711384540.4A patent/CN109947494B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050065993A1 (en) * | 2003-09-18 | 2005-03-24 | Masanori Honda | Job network configuration file creating device and creating method |
CN102508669A (zh) * | 2011-11-14 | 2012-06-20 | 浙江鸿程计算机系统有限公司 | 一种程序代码自动生成方法 |
CN107294750A (zh) * | 2016-04-01 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种云集群能自识别的分布配置管理方法和装置 |
CN107092489A (zh) * | 2017-04-13 | 2017-08-25 | 中国联合网络通信集团有限公司 | 基于应用版本发布的处理方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866082A (zh) * | 2020-06-22 | 2020-10-30 | 远光软件股份有限公司 | 一种基于目标系统配置的数据分发方法和装置 |
CN112383613A (zh) * | 2020-11-11 | 2021-02-19 | 杭州飞致云信息科技有限公司 | 容器集群系统的管理方法和装置 |
CN113556250A (zh) * | 2021-07-21 | 2021-10-26 | 中国工商银行股份有限公司 | 一种网络设备批量配置方法及装置 |
CN113556250B (zh) * | 2021-07-21 | 2022-12-20 | 中国工商银行股份有限公司 | 一种网络设备批量配置方法及装置 |
CN115080152A (zh) * | 2022-08-19 | 2022-09-20 | 飞狐信息技术(天津)有限公司 | 消息中间件的Broker配置方法、装置、计算机设备及介质 |
CN115080152B (zh) * | 2022-08-19 | 2022-12-27 | 飞狐信息技术(天津)有限公司 | 消息中间件的Broker配置方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109947494B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10599874B2 (en) | Container update system | |
CN109947494A (zh) | 一种配置文件的管理方法和装置 | |
US10771330B1 (en) | Tunable parameter settings for a distributed application | |
US10778810B2 (en) | Staging and deployment to multiple service clouds | |
US8762931B2 (en) | Generating an encoded package profile | |
DE102012219155A1 (de) | Verschlüsseln von Datenobjekten zur Datensicherung | |
US10361910B2 (en) | Systems and methods for configuring a managed device using an image | |
CN104050248B (zh) | 一种文件存储系统及存储方法 | |
US9104745B1 (en) | Distributed log collector and report generation | |
US9607170B2 (en) | Compromise free cloud data encryption and security | |
CN104239122B (zh) | 一种虚拟机迁移方法和装置 | |
CN104484766A (zh) | 一种企业管理应用系统 | |
DE102016102424A1 (de) | Auf Inhalt beruhende Hardware-Sicherheitsmodulzuweisung zu virtuellen Maschinen | |
CN104361065A (zh) | 基于Zookeeper的分布式系统的有序序列号生成方法 | |
CN104090938A (zh) | 一种提交数据的方法及装置 | |
CN102542367A (zh) | 基于领域模型的云计算网络工作流处理方法、装置和系统 | |
US20120078946A1 (en) | Systems and methods for monitoring files in cloud-based networks | |
CN106294740A (zh) | 数据处理方法、装置及服务器 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
US10002058B1 (en) | Method and system for providing disaster recovery services using elastic virtual computing resources | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN111680108A (zh) | 一种数据存储方法、装置及一种数据获取方法、装置 | |
CN105302817B (zh) | 分布式文件系统管理方法和装置 | |
US9245048B1 (en) | Parallel sort with a ranged, partitioned key-value store in a high perfomance computing environment | |
KR101718397B1 (ko) | 파일의 분산 저장 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Applicant after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A Room 601 Applicant before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |