一、问题布景:
大部分的运用运维作业跟着服务器数量和产品数量的添加而添加,而运维人数的缺乏导致单个运维人员所承当的作业使命较为深重,一起运维作业的不标准、无自动化使得运用运维使命十分复杂,消耗的很多的人员本钱、时刻本钱和交流本钱。
运用运维作业说白了大体能够分为两种状况:1. 在某个或某些服务器上履行某个脚本或指令;2.将某个或某些文件传输到某个或某些特定的服务器的特定方位上。在服务器数量较少的状况下,能够经过ssh或scp指令完结上面两个操作;服务器数量较多的状况下,咱们能够经过包装ssh或许运用批量ssh东西,如pssh,ansible等来处理问题,但这种方法大多数都是一次性的方法,不管运用方法以及后续盯梢来看都并不友爱。
还有,因为一系列前史原因,现网的服务环境也较为冗杂,现网的服务器上的代码、装备、软件包、脚本等文件没有进行一致的版别办理与装备办理,比方某个产品的代码版别多种多样;现网的代码和文件简直都是经过一台复制到另一台的方法来完结;因为代码版别、装备版别等问题导致的现网质量事情也并不在少量。
别的,运用运维也需求一个一致的资源办理体系,对现网的服务的数据进行事务维度的资源办理,体系运维的CMDB体系只在静态资源维度进行了管控,动态的事务数据等资源需求运用运维团队自行来办理。
因而,针对上面所述的各种问题,需求一个运维管控体系,来处理包含:资源办理、装备办理、使命办理、文件发布等一些列常用的运维盯梢,经过简略高效、自动化的方法将繁琐的运用运维作业经过管控体系来完结,即能够下降运维的难度,也能够进步运维的功率,一起能够进步运维操作的成功率,并完结运维使命的继续盯梢和办理,甚至在不远的将来能够完结移动运维。
二、功用结构:
经过上述的剖析和收拾,咱们将整个管控渠道的功用细化到如下几个大功用,如图所示:
三、详细规划:
这儿环绕上面功用结构图中的4个大功用,进行详细的剖析和规划,其间移动运维功用为附加功用,这儿暂时不介绍。
3.1 资源办理
先说资源办理,资源办理是全部后续自动化运维功用的条件,也是一切自动化功用的数据依靠。
资源办理的功用能够较为单薄,可是对数据的要求比较高,能够依据体系运维的CMDB体系进行二次构建,首要的功用能够分为:
1、物理机资源办理:物理机资源办理功用,需求将CMDB中一切交付到运用运维的物理机资源进行重新收拾,依照二级事务产品线进行办理,支撑多种服务器状况(如布置中,备用池等等)标示。能够依据物理机资源办理体系进行服务器初始化办理操作,加速服务初始化布置作业的功率。物理机资源办理关于后续的装备办理和作业办理来说是最为重要的,是后续两个功用的数据根底。
2、办理虚机资源办理:一切的办理服务都布置在办理虚机上,因而咱们也需求对办理虚机进行办理,办理虚机的数据和物理机资源办理相同,能够依靠体系运维的CMDB中的数据进行二次办理,功用和物理机资源办理相似,这儿不再论述。
3、虚拟资源办理:虚拟资源办理便是在每一台物理机上的虚拟机/事务DB的资源办理,能够依据事务办理数据库中的数据进行二次整合,或许经过数据收集上报的方法完结,尽可能的做到虚拟资源数据的有效性和状况一致性。
虚拟资源数据在进行后续的虚拟资源办理、虚拟资源搬迁等功用上会有较大协助,能够依据虚拟资源办理完结自动化的实例搬迁作业,节约很多的手动实例搬迁使命。别的虚拟资源办理对宕机康复或机房、机架断电等问题也会有较大的协助。
整个资源办理比较简略,能够优先完结物理机资源办理功用,再完结虚拟资源办理功用。
3.2 作业办理
作业办理是运用运维管控体系的中心功用,也是运用运维作业中最常常运用到的功用,作业办理功用也能够分为如下子功用,如图所示:
下面将别离对上面几个子功用进行详细介绍:
1. 脚本履行:
脚本履行和文件分发是整个作业功用的根底功用,其他的功用都是经过对着两个功用进行拼装和装修来完结的。
脚本履行的表现方法便是运维人员在页面中提交一个脚本,脚本主张支撑shell和python两种方法,能够经过三种方法:
1)手动书写;也便是在页面上的编辑器中编写脚本;
2)上传脚本;也便是经过浏览器将本地的脚本上传到体系中;
3)克隆体系脚本;所谓的体系脚本便是运维人员经过上面两个过程提交到体系中的脚本,能够分为根底体系脚本和用户体系脚本,根底体系脚本便是那些咱们清晰可能会屡次履行的脚本,比方服务器初始化等脚本;用户体系脚本便是用户自定义的脚本,能够完结任何功用。
脚本的编写要依靠必定的语法标准,咱们能够为shell和python言语供给根底的类包和函数库,一起一切的脚本的履行成果都会依据脚本的exit的 $? 值来判别,$? 值为0,则表明该脚本履行成功,若为其他值则表明脚本履行失利。脚本的输出内容会存储到数据库中用于后续的问题盯梢和排查,因而需求运维人员写脚本的时分留意写上详细的日志内容。
脚本支撑输入参数。用户能够在页面中的参数一栏输入履行参数,当然也能够直接写到脚本里。
支撑挑选履行账户。现在大部分服务的运转账户仍然是root用户,后续可能会改成非root用户,所以这儿支撑挑选履行账户,详细的账户称号,能够在用户办理的功用中保护。
支撑挑选所履行的服务器。用户在挑选好相应的脚本之后,需求指定在哪些服务器上履行该脚本,因而需求支撑挑选所需的服务器。这儿面服务器挑选分为两种形式:
1)本地履行形式;本地形式指,该脚本的履行并不会到长途服务器去履行,而是在办理服务地点的本地履行,这种形式能够用来判别长途服务器是否发动等功用,或是某些只能在办理服务器上履行的指令;