背景:最近遇到一个需求,公司运维人员可以通过ambari界面addservice按钮添加、启动、停止我们公司的系统,就花时间研究了一下ambari的集成。
步骤:万事皆套路,ambari集成也同样,一是告诉ambari我要添加什么服务,二是告诉ambari我的服务在哪并且怎么加载的。下面我就按照这两个步骤来说明详细过程。
一、告诉ambari我添加什么服务。
首先要在/var/lib/ambari-server/resources/stacks/HDP/3.1/services路径下添加服务名称,新建一个服务名称文件夹,名称就是要添加的服务的名称,如下图新建APISERVICE服务
然后添加说明文件metainfo.xml,
文件内容为xml格式,包括服务名称、版本、相对路径:
二、告诉ambari我的服务在哪并且怎么加载的。
首先在/var/lib/ambari-server/resources/common-services文件夹下面定义服务的操作步骤,如图所示,也是同样要创建一个服务名称的文件夹。
创建上文xml中定义的路径如:APISERVICE/1.0这个文件夹。
在这个文件夹1.0下面就是要按照套路来创建相应名称的目录或者文件了,如下图所示:
这里面metainfo.xml、master.py、params.py是必须的而且目录结构必须是这样的。
下面来看一下metainfo.xml里面的内容:
<?xml version="1.0"?>
<metainfo>
<schemaVersion>2.0</schemaVersion>
<services>
<service>
<name>APISERVICE</name>
<displayName>API Service</displayName>
<comment>api service</comment>
<version>1.0</version>
<components>
<component>
<name>APICOMPONENT</name>