CN110795224A - 一种基于Ansible的自动化运维***和方法 - Google Patents

一种基于Ansible的自动化运维***和方法 Download PDF

Info

Publication number
CN110795224A
CN110795224A CN201911044858.7A CN201911044858A CN110795224A CN 110795224 A CN110795224 A CN 110795224A CN 201911044858 A CN201911044858 A CN 201911044858A CN 110795224 A CN110795224 A CN 110795224A
Authority
CN
China
Prior art keywords
task
module
tasks
scheduling
maintenance
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.)
Pending
Application number
CN201911044858.7A
Other languages
English (en)
Inventor
徐守东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201911044858.7A priority Critical patent/CN110795224A/zh
Publication of CN110795224A publication Critical patent/CN110795224A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/20Administration of product repair or maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于Ansible的自动化运维***和方法,***包括:任务调度模块、消息中间件模块、woker模块和Ansible模块;任务调度模块用于编排任务和定时调度任务以及发布任务;消息中间件模块,用于发布任务,并将调度后的任务放在任务队列中;worker模块用于从任务队列中提取待执行任务,并对任务进行初始化;Ansible模块用于执行任务文件,完成运维任务。基于任务调度、worker模块和ansible模块,由任务调度模块自动调度任务,由workker模块接收任务并由ansible模块执行任务,实现了任务流自动执行,减少人为干预,提升运维效率。

Description

一种基于Ansible的自动化运维***和方法
技术领域
本发明涉及移动IT***运维的领域,尤其涉及一种基于Ansible的自动化运维***和方法。
背景技术
当前移动IT***运维的机器越来越多,当前的运维多数还停留在传统的运维阶段,传统运维以手动执行shell命令或脚本为主,传统的调度通过人工或crontab定时任务实现。传统的运维方法,可靠性低,人工干预多的情况下,很容易出现人为操作失误,维护的可靠性不能保证。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供。
本发明解决上述技术问题的技术方案如下:
一种基于Ansible的自动化运维***,包括:任务调度模块、消息中间件模块、woker模块和Ansible模块;
所述任务调度模块用于创建任务、编排所述任务和定时对所述任务进行调度,并发布到消息中间件;
所述消息中间件模块,用于传输调度后的所述任务,并将调度后的所述任务放在任务队列中;
所述woker模块用于从任务队列中消费待执行任务,初始化任务并调用ansible接口,生成可执行的任务;
所述Ansible模块用于执行所述可执行的任务,完成运维任务。
本发明的有益效果是:任务调度模块创建和编排任务,根据编排要素,执行时间、执行周期、执行上下文关系和出入参数创建调度任务,再通过woker接收调度任务,并生成执行文件,Ansible模块执行任务。相比现技术的运维以手动执行shell命令或脚本,人工调度或者crontab定时调度的方案,本申请的方案人工成本低、可靠性高,在任务流程较多时能够自动衔接流程,自动执行下一个阶段的任务流,自动化程度更高。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,所述任务调度模块具体用于创建任务,对所述任务中的多个子任务进行编排,根据预设编排要素创建调度任务,定时并发布所述调度任务到所述消息中间件模块。
采用上述进一步方案的有益效果是:通过任务调度模块根据实际运维工作要求创建工作任务,再对工作任务中的多个子任务根据编排要素进行编排,再创建调度任务;通过任务创建、子任务编排和创建包含编排条件的调度任务,实现运维任务的实时调度,并可以在复杂条件下有序的衔接任务流中的任务,使得***运维效率更高。
进一步地,所述woker模块具体用于消费所述任务队列中的待执行任务,根据所述待执行任务的初始化Playbook,并调用ansible接口;
所述Ansible模块具体用于执行所述Playbook,通过所述Playbook调用对应的roles,完成主机的自动运维。
采用上述进一步方案的有益效果是:woker模块消费所述任务队列中的待执行任务,根据所述待执行任务的初始化Playbook;Ansible模块执行Playbook,完成主机的自动运维,相比传统人为运维方式,不需要人为干预,避免了人为操作失误的情况,自动生成playbook执行文件,传统人为编写shell脚本,效率更高。
进一步地,所述woker模块还用于将所述Ansible模块执行完的子任务的结果及状态返回到所述消息中间件模块的结果队列中。
采用上述进一步方案的有益效果是:Ansible模块在执行完playbook,将执行完playbook的结果,通过woker模块返回到结果队列中,帮助***获知任务执行的情况,***根据执行结果,自动判断下一步需要执行的任务。
进一步地,所述任务调度模块还用于获取所述结果队列中任务执行的状态,判断所述执行的结果,如果所述执行的结果是执行完成,则进行下一个子任务;如果所述执行的结果是未完成,则继续进行本次子任务。
采用上述进一步方案的有益效果是:任务调度模块根据woker模块执行的结果,自动判断任务的执行状态,如果任务未完成,继续执行本次任务,实现了任务结果的自检;如果任务完成,根据调度任务,调度下一个任务,实现任务流的自动衔接。
本发明解决上述技术问题的另一种技术方案如下:
一种基于Ansible的自动化运维的方法,包括以下步骤:
S1,任务调度模块创建任务、编排所述任务和定时对所述任务进行调度;
S2,消息中间件模块传输调度后的所述任务,并将调度后的所述任务放在任务队列中;
S3,woker模块从任务队列中消费提取待执行任务,初始化任务并调用ansible接口,生成可执行的任务;
S4,Ansible模块执行所述可执行的任务,完成运维任务。
本发明的有益效果是:任务调度模块创建和编排任务,根据编排要素,执行时间、执行周期、执行上下文关系和出入参数创建调度任务,再通过woker接收调度任务,并生成执行文件,Ansible模块执行任务。相比现技术的运维以手动执行shell命令或脚本,人工调度或者crontab定时调度的方案,本申请的方案人工成本低、可靠性高,在任务流程较多时能够自动衔接流程,自动执行下一个阶段的任务流,自动化程度更高。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,所述任务调度模块创建任务、编排任务和定时调度任务,具体包括:
所述任务调度模块创建任务;
对所述任务中的多个子任务进行编排;
根据预设编排要素创建调度任务,定时并发布所述调度任务到所述消息中间件模块。
采用上述进一步方案的有益效果是:通过任务调度模块根据实际运维工作要求创建工作任务,再对工作任务中的多个子任务根据编排要素进行编排,再创建调度任务;通过任务创建、子任务编排和创建包含编排条件的调度任务,实现运维任务的实时调度,并可以在复杂条件下有序的衔接任务流中的任务,使得***运维效率更高。
进一步地,所述S3具体包括:
所述woker模块消费所述任务队列中的待执行任务,根据所述待执行任务的初始化Playbook,并调用ansible接口;
所述S4具体包括:
所述Ansible模块执行所述Playbook,通过所述Playbook调用对应的roles,完成主机的自动运维。
采用上述进一步方案的有益效果是:woker模块消费所述任务队列中的待执行任务,根据所述待执行任务的子任务生成Playbook;Ansible模块执行Playbook,完成主机的自动运维,相比传统人为运维方式,不需要人为干预,避免了人为操作失误的情况,自动生成playbook执行文件,传统人为编写shell脚本,效率更高。
进一步地,还包括:所述woker模块将所述Ansible模块执行完的子任务的结果及状态返回到所述消息中间件模块的结果队列中。
采用上述进一步方案的有益效果是:Ansible模块在执行完playbook,将执行完playbook的结果,通过woker模块返回到结果队列中,帮助***获知任务执行的情况,***根据执行结果,自动判断下一步需要执行的任务。
进一步地,还包括:所述任务调度模块获取所述结果队列中任务执行的状态,判断所述执行的结果,如果所述执行的结果是执行完成,则进行下一个子任务;如果所述执行的结果是未完成,则继续进行本次子任务。
采用上述进一步方案的有益效果是:任务调度模块根据woker模块执行的结果,自动判断任务的执行状态,如果任务未完成,继续执行本次任务,实现了任务结果的自检;如果任务完成,根据调度任务,调度下一个任务,实现任务流的自动衔接。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明的实施例提供的基于Ansible的自动化运维***的结构框图;
图2为本发明的其他实施例提供的基于Ansible的自动化运维方法流程示意图;
图3为本发明的其他实施例提供的基于Ansible的自动化运维***的结构框架图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明实施例提供的一种基于Ansible的自动化运维***,该***包括:任务调度模块11、消息中间件模块12、woker模块13和Ansible模块14;
任务调度模块11用于创建任务、编排任务和定时对任务进行调度,并发布到消息中间件;
任务调度模块11根据实际的运维需求,创建任务,可以根据任务的复杂程度或不同应用场景,具体选择开发任务的play或role;根据编排要素编排任务中多个子任务,编排要素可以包括任务执行时间、执行周期、执行上下文的关系和子任务的出入参数,执行上下文的关系是指上一个子任务的执行结果会影响下一个任务的执行过程,上一个子任务和下一个子任务需要连在一起执行,形成上下文关系;子任务的出入参数是指,上一个子任务的出参数是下一个子任务的入参数,上下这两个子任务需要连在一起。并对待调度的任务进行序列化,将序列化后的待调度的任务发布到消息中间件模块12。其中任务的序列化是指把任务的状态数据经调制后存入数据库。
消息中间件模块12,用于传输调度后的任务,并将调度后的任务放在任务队列中;
消息中间件模块12可以使用消息队列RabbitMQ,消息中间件模块12配置出两个通道,一个作为任务队列通道,另一个作为结果队列通道。
消息中间件模块12接收到调度后的任务,并将任务发布到相应通道,以便各通道的woker模块13消费。
woker模块13用于从任务队列中消费待执行任务,初始化任务并调用ansible接口,生成可执行的任务;其中woker模块13消费待执行任务是指,根据待执行任务的排列规则,依次获取待执行任务的子任务。
待执行任务是根据编排要素编排并序列化后的任务,Ansible模块14还不能执行;经过woker模块13对任务进行反序列化,并生成Ansible模块14可执行的playbook文件。
woker模块13消费消息中间件调度后的任务,对任务数据进行反序列化,初始化playbook文件,并调用ansible接口。所述反序列化是指从序列化的表示形式的任务中提取数据,并直接设置任务对象状态,就是将序列化的数据经反调制从数据库中取出。
Ansible模块14用于执行任务文件,完成运维任务。
Ansible模块14执行Playbook,通过Playbook调用对应的roles,完成主机的自动运维。
任务调度模块11创建和编排任务,根据编排要素,执行时间、执行周期、执行上下文关系和出入参数创建调度任务,再通过woker模块13接收调度任务,并生成执行文件,Ansible模块14执行任务。相比现技术的运维以手动执行shell命令或脚本,人工调度或者crontab定时调度的方案,本申请的方案人工成本低、可靠性高,在任务流程较多时能够自动衔接流程,自动执行下一个阶段的任务流,自动化程度更高。
优选地,在上述任意实施例中,任务调度模块11具体用于创建任务,对任务中的多个子任务进行编排,根据预设编排要素创建调度任务,定时并发布调度任务到消息中间件模块12。
任务调度模块11根据实际的运维需求,创建任务,可以根据任务的复杂程度或不同应用场景,具体选择开发任务的play或role;根据编排要素编排任务中多个子任务,编排要素可以包括任务执行时间、执行周期、执行上下文的关系和子任务的出入参数,执行上下文的关系是指上一个子任务的执行结果会影响下一个任务的执行过程,上一个子任务和下一个子任务需要连在一起执行,形成上下文关系;子任务的出入参数是指,上一个子任务的出参数是下一个子任务的入参数,上下这两个子任务需要连在一起;根据编排要输编排任务的过程,例如给10台server创建文件***,首先开发这个任务的Play或role,根据任务的编排需要梳理编排要素,比如任务执行时间、执行周期、执行上下文的关系和子任务的出入参数,根据需要的编排要素,对任务中的子任务进行编排。并对待调度的任务进行序列化,将序列化后的待调度的任务发布到消息中间件模块12。
通过任务调度模块11根据实际运维工作要求创建工作任务,再对工作任务中的多个子任务根据编排要素进行编排,再创建调度任务;通过任务创建、子任务编排和创建包含编排条件的调度任务,实现运维任务的实时调度,并可以在复杂条件下有序的衔接任务流中的任务,使得***运维效率更高。
优选地,在上述任意实施例中,woker模块13具体用于消费任务队列中的待执行任务初始化Playbook,并调用ansible接口;
Ansible模块14具体用于执行Playbook,通过Playbook调用对应的roles,完成主机的自动运维。
woker模块13消费任务队列中的待执行任务,根据待执行任务的子任务生成Playbook;Ansible模块14执行Playbook,完成主机的自动运维,相比传统人为运维方式,不需要人为干预,避免了人为操作失误的情况,自动生成playbook执行文件,传统人为编写shell脚本,效率更高。
优选地,在上述任意实施例中,woker模块13还用于将Ansible模块14执行完的子任务的结果及状态返回到消息中间件模块12的结果队列中。
Ansible模块14在执行完playbook,将执行完playbook的结果,通过woker模块13返回到结果队列中,帮助***获知任务执行的情况,***根据执行结果,自动判断下一步需要执行的任务。
优选地,在上述任意实施例中,如图3所示,是基于Ansible的自动化运维***,任务调度模块11还用于获取结果队列中任务执行的状态,判断执行的结果,如果执行的结果是执行完成,则进行下一个子任务;如果执行的结果是未完成,则继续进行本次子任务。
任务调度模块11获取结果队列中任务执行的结果,判断执行的结果,如果执行的结果是执行完成,则进行下一个子任务;还可以包括当一个任务的多个子任务都执行完成,则进行下一个任务的子任务。
任务调度模块11根据woker模块13执行的结果,自动判断任务的执行状态,如果任务未完成,继续执行本次任务,实现了任务结果的自检;如果任务完成,根据调度任务,调度下一个任务,实现任务流的自动衔接。
在某一实施例中,给出了一种基于Ansible的自动化运维的方法,包括以下步骤,如图2所示:
S1,任务调度模块11创建任务、编排任务和定时对任务进行调度;
任务调度模块11根据实际的运维需求,创建任务,可以根据任务的复杂程度或不同应用场景,具体选择开发任务的play或role;根据编排要素编排任务中多个子任务,编排要素可以包括任务执行时间、执行周期、执行上下文的关系和子任务的出入参数,执行上下文的关系是指上一个子任务的执行结果会影响下一个任务的执行过程,上一个子任务和下一个子任务需要连在一起执行,形成上下文关系;子任务的出入参数是指,上一个子任务的出参数是下一个子任务的入参数,上下这两个子任务需要连在一起。并对待调度的任务进行序列化,将序列化后的待调度的任务发布到消息中间件模块12。其中任务的序列化是指把任务的状态数据经调制后存入数据库。
S2,消息中间件模块传输调度后的所述任务,并将调度后的所述任务放在任务队列中;
消息中间件模块12可以使用消息队列RabbitMQ,消息中间件模块12配置出两个通道,一个作为任务队列通道,另一个作为结果队列通道。
消息中间件模块12接收到调度后的任务,并将任务发布到相应通道,以便各通道的woker模块13消费。
S3,woker模块13从任务队列中消费提取待执行任务,初始化任务并调用ansible接口,生成可执行的任务;其中woker模块13消费待执行任务是指,根据待执行任务的排列规则,依次获取待执行任务的子任务。
待执行任务是根据编排要素编排并序列化后的任务,Ansible模块14还不能执行;经过woker模块13对任务进行反序列化,并生成Ansible模块14可执行的playbook文件。
woker模块13消费消息中间件调度后的任务,对任务数据进行反序列化,生成子任务的可执行的playbook文件。所述反序列化是指从序列化的表示形式的任务中提取数据,并直接设置对象状态,就是将序列化的数据经反调制从数据库中取出。
S4,Ansible模块14执行任务,完成运维任务。
Ansible模块14执行Playbook,通过Playbook调用对应的roles,完成主机的自动运维。
任务调度模块11创建和编排任务,根据编排要素,执行时间、执行周期、执行上下文关系和出入参数创建调度任务,再通过woker模块13接收调度任务,并生成执行文件,Ansible模块14执行任务。相比现技术的运维以手动执行shell命令或脚本,人工调度或者crontab定时调度的方案,本申请的方案人工成本低、可靠性高,在任务流程较多时能够自动衔接流程,自动执行下一个阶段的任务流,自动化程度更高。
在上述技术方案的基础上,本发明还可以做如下改进。
优选地,在上述任意实施例中,任务调度模块11创建任务、编排任务和定时调度任务,具体包括:
任务调度模块11创建任务;
对任务中的多个子任务进行编排;
根据预设编排要素创建调度任务,定时并发布调度任务到消息中间件模块12。
任务调度模块11根据实际的运维需求,创建任务,可以根据任务的复杂程度或不同应用场景,具体选择开发任务的play或role;根据编排要素编排任务中多个子任务,编排要素可以包括任务执行时间、执行周期、执行上下文的关系和子任务的出入参数,执行上下文的关系是指上一个子任务的执行结果会影响下一个任务的执行过程,上一个子任务和下一个子任务需要连在一起执行,形成上下文关系;子任务的出入参数是指,上一个子任务的出参数是下一个子任务的入参数,上下这两个子任务需要连在一起。根据编排要输编排任务的过程,例如给10台server创建文件***,首先开发这个任务的Play或role,根据任务的编排需要梳理编排要素,比如任务执行时间、执行周期、执行上下文的关系和子任务的出入参数,根据需要的编排要素,对任务中的子任务进行编排。并对待调度的任务进行序列化,将序列化后的待调度的任务发布到消息中间件模块12。
通过任务调度模块11根据实际运维工作要求创建工作任务,再对工作任务中的多个子任务根据编排要素进行编排,再创建调度任务;通过任务创建、子任务编排和创建包含编排条件的调度任务,实现运维任务的实时调度,并可以在复杂条件下有序的衔接任务流中的任务,使得***运维效率更高。
优选地,在上述任意实施例中,S3具体包括:
woker模块13消费任务队列中的待执行任务,根据所述待执行任务的初始化Playbook,并调用ansible接口;
S4具体包括:
Ansible模块14执行Playbook,通过Playbook调用对应的roles,完成主机的自动运维。
woker模块13消费任务队列中的待执行任务,根据待执行任务的子任务生成Playbook;Ansible模块14执行Playbook,完成主机的自动运维,相比传统人为运维方式,不需要人为干预,避免了人为操作失误的情况,自动生成playbook执行文件,传统人为编写shell脚本,效率更高。
优选地,在上述任意实施例中,还包括:woker模块13将Ansible模块14执行完的子任务的结果及状态返回到消息中间件模块12的结果队列中。Ansible模块14在执行完playbook,将执行完playbook的结果,通过woker模块13返回到结果队列中,帮助***获知任务执行的情况,***根据执行结果,自动判断下一步需要执行的任务。
优选地,在上述任意实施例中,还包括:任务调度模块11获取结果队列中任务执行的状态,判断执行的结果,如果执行的结果是执行完成,则进行下一个子任务;如果执行的结果是未完成,则继续进行本次子任务。
任务调度模块11获取结果队列中任务执行的结果,判断执行的结果,如果执行的结果是执行完成,则进行下一个子任务;还可以包括当一个任务的多个子任务都执行完成,则进行下一个任务的子任务。
任务调度模块11根据woker模块13执行的结果,自动判断任务的执行状态,如果任务未完成,继续执行本次任务,实现了任务结果的自检;如果任务完成,根据调度任务,调度下一个任务,实现任务流的自动衔接。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于Ansible的自动化运维***,其特征在于,包括:任务调度模块、消息中间件模块、woker模块和Ansible模块;
所述任务调度模块用于创建任务、编排所述任务和定时对所述任务进行调度,并发布到消息中间件;
所述消息中间件模块,用于传输调度后的所述任务,并将调度后的所述任务放在任务队列中;
所述woker模块用于从任务队列中消费待执行任务,初始化任务并调用ansible接口,生成可执行的任务;
所述Ansible模块用于执行所述可执行的任务,完成运维任务。
2.根据权利要求1所述的一种基于Ansible的自动化运维***,其特征在于,所述任务调度模块具体用于创建任务,对所述任务中的多个子任务进行编排,根据预设编排要素创建调度任务,定时并发布所述调度任务到所述消息中间件模块。
3.根据权利要求2所述的一种基于Ansible的自动化运维***,其特征在于,所述woker模块具体用于消费所述任务队列中的待执行任务,初始化所述待执行任务Playbook,并调用ansible接口;
所述Ansible模块具体用于执行所述Playbook,通过所述Playbook调用对应的roles,完成主机的自动运维。
4.根据权利要求2或3任一项所述的一种基于Ansible的自动化运维***,其特征在于,所述woker模块还用于将所述Ansible模块执行完的子任务的结果及状态返回到所述消息中间件模块的结果队列中。
5.根据权利要求4所述的一种基于Ansible的自动化运维***,其特征在于,所述任务调度模块还用于获取所述结果队列中任务执行的状态,判断所述执行的结果,如果所述执行的结果是执行完成,则进行下一个子任务;如果所述执行的结果是未完成,则继续进行本次子任务。
6.一种基于Ansible的自动化运维的方法,其特征在于,包括:
S1,任务调度模块创建任务、编排所述任务和定时对所述任务进行调度;
S2,消息中间件模块传输调度后的所述任务,并将调度后的所述任务放在任务队列中;
S3,woker模块从任务队列中消费提取待执行任务,初始化任务并调用ansible接口,生成可执行的任务;
S4,Ansible模块执行所述可执行的任务,完成运维任务。
7.根据权利要求6所述的一种基于Ansible的自动化运维的方法,其特征在于,所述任务调度模块创建任务、编排任务和定时调度任务,具体包括:
所述任务调度模块创建任务;
对所述任务中的多个子任务进行编排;
根据预设编排要素创建调度任务,定时并发布所述调度任务到所述消息中间件模块。
8.根据权利要求7所述的一种基于Ansible的自动化运维的方法,其特征在于,所述S3具体包括:
所述woker模块消费所述任务队列中的待执行任务,初始化所述待执行任务Playbook,并调用ansible接口;
所述S4具体包括:
所述Ansible模块执行所述Playbook,通过所述Playbook调用对应的roles,完成主机的自动运维。
9.根据权利要求7或8任一项所述的一种基于Ansible的自动化运维的方法,其特征在于,还包括:
所述woker模块将所述Ansible模块执行完的子任务的结果及状态返回到所述消息中间件模块的结果队列中。
10.根据权利要求9所述的一种基于Ansible的自动化运维的方法,其特征在于,还包括:
所述任务调度模块获取所述结果队列中任务执行的状态,判断所述执行的结果,如果所述执行的结果是执行完成,则进行下一个子任务;如果所述执行的结果是未完成,则继续进行本次子任务。
CN201911044858.7A 2019-10-30 2019-10-30 一种基于Ansible的自动化运维***和方法 Pending CN110795224A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911044858.7A CN110795224A (zh) 2019-10-30 2019-10-30 一种基于Ansible的自动化运维***和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911044858.7A CN110795224A (zh) 2019-10-30 2019-10-30 一种基于Ansible的自动化运维***和方法

Publications (1)

Publication Number Publication Date
CN110795224A true CN110795224A (zh) 2020-02-14

Family

ID=69442080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911044858.7A Pending CN110795224A (zh) 2019-10-30 2019-10-30 一种基于Ansible的自动化运维***和方法

Country Status (1)

Country Link
CN (1) CN110795224A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685051A (zh) * 2020-12-31 2021-04-20 北京华胜天成科技股份有限公司 自动执行shell脚本的方法、装置、平台及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110173626A1 (en) * 2010-01-12 2011-07-14 Nec Laboratories America, Inc. Efficient maintenance of job prioritization for profit maximization in cloud service delivery infrastructures
CN107423122A (zh) * 2017-07-25 2017-12-01 苏州博纳讯动软件有限公司 一种复杂运维作业编排与调度***及其方法
CN108494582A (zh) * 2018-02-13 2018-09-04 国网浙江省电力有限公司信息通信分公司 一种低耦合自动化运维***及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110173626A1 (en) * 2010-01-12 2011-07-14 Nec Laboratories America, Inc. Efficient maintenance of job prioritization for profit maximization in cloud service delivery infrastructures
CN107423122A (zh) * 2017-07-25 2017-12-01 苏州博纳讯动软件有限公司 一种复杂运维作业编排与调度***及其方法
CN108494582A (zh) * 2018-02-13 2018-09-04 国网浙江省电力有限公司信息通信分公司 一种低耦合自动化运维***及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SERGEYVOLKOV等: ""Simplifying the Use of Clouds for Scientific Computing with Everest"", 《PROCEDIA COMPUTER SCIENCE》 *
郑云龙: ""基于OpenStack的云自动化配置管理平台设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685051A (zh) * 2020-12-31 2021-04-20 北京华胜天成科技股份有限公司 自动执行shell脚本的方法、装置、平台及存储介质

Similar Documents

Publication Publication Date Title
JP2019523462A (ja) マルチタスクスケジューリング方法、システム、アプリケーションサーバ及びコンピュータの読み取り可能な記憶媒体
CN103034554A (zh) 一种纠错重启以及自动判断启动的etl调度***及方法
CN102279766B (zh) 并行模拟多个处理器的方法及***、调度器
CN102508716A (zh) 任务控制装置和任务控制方法
CN110942387A (zh) 基于微服务的电票业务功能构建方法和***
CN105608001A (zh) 基于后台***服务或接口的测试方法和测试平台
WO2019227708A1 (zh) 测试案例的在线调试装置、方法及计算机可读存储介质
CN101201753A (zh) 一种多状态机管理引擎的配置管理方法
CN101317153A (zh) 工作流上的对象模型
CN109597733B (zh) 一种多功能高效动态芯片验证仿真方法和设备
CN109901818B (zh) 用于软件架构设计的***和方法
CN111861235A (zh) 任务流程编排方法及装置、电子设备
CN110611707A (zh) 一种任务调度的方法及装置
CN109445929A (zh) 一种调度任务的方法和***
CN114816730A (zh) 一种机器人流程自动化云服务***及实现方法
CN111625220A (zh) 一种页面组件的自动组装方法、***、装置和存储介质
CN110795224A (zh) 一种基于Ansible的自动化运维***和方法
CN112346842B (zh) 一种基于有向无环图的工作流任务调度方法
CN104992271B (zh) 一种不同流程实例协同运行的***及其实现方法
CN112732556B (zh) 分布式***的自动化测试方法、装置、设备及存储介质
CN113760462A (zh) 一种调度自动化***验证环境的构建方法及装置
CN104731900A (zh) 一种Hive调度方法及装置
CN115048158A (zh) 流程编排及调用方法及其***、计算机设备
CN113867714A (zh) 一种适配多语言的自动代码生成方法
CN114416305A (zh) 一种机器人引擎实现方法、***及电子设备

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200214

RJ01 Rejection of invention patent application after publication