版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxl1033394132/article/details/52425244
之前在ambari开发中,集成自定义服务时,不仅仅需要在stacks下加入服务,还需要在ambari-web端进行相关配置。后来无意间在IBM的一个博客中看到有在2.3版后仅作简单配置即可添加快速链接,忍不住想研究一番。
首先来看下官网的介绍。
官网在发布版的2.4.0加入了quicklinks的jira。
一、简介
服务可以通过在metainfo中加入一串quicklink的引用(一串预定义的JSON字符串)即可。ambari server能解析json文件并将其提供给UI,以便ambari web ui 能够计算快速链接的URL(基于信息和相对应的下拉快速链接列表)
二、设计
默认情况下,json文件的名称是quicklinks.json,其位于服务的根目录下所在的quicklinks文件目录下。例如oozie,其quicklinks.json位于OOZIE/quicklinks/quicklinks.json,当然也可以放在自定义服务的根目录下。例如自定义服务SAMPLE,其快速链接目录自定义为quicklinks-simple,在metainfo中可以定义如下:
<service>
<name>SIMPLE</name>
<version>0.0.1</version>
<quickLinksConfigurations-dir>quicklinks-simple</quickLinksConfigurations-dir>
<quickLinksConfigurations>
<quickLinksConfiguration>
<fileName>quicklinks.json</fileName>
<default>true</default>
</quickLinksConfiguration>
</quickLinksConfigurations>
......
</service>
quicklinks.json文件如下定义:
{
"name": "default", ---默认
"description": "default quick links configuration", ---默认
"configuration": {
"protocol": {
# 如果所有检测都满足,制定UI类型
# 执行https或是http类型
"type":"https",
"checks":[ # 检测必要性
{
"property":"HTTPS_ONLY",---可选HTTP_ONLY或是HTTPS_ONLY
"desired":"HTTPS_ONLY",
"site":"simple-site" ---属性所在的文件
}
]
},
#链接的配置项
"links": [
{
"name": "simple_ui", ---快速链接的名称
"label": "Simple UI", ---快链UI上的显示名称
"requires_user_name": "false", #如果需要UI附加用户名在快速链接的尾部,则设置为true,
"url": "%@://%@:%@",
"template": "%@://%@:%@", ---可选2.3支持的。2.4后用url替代
"port":{
#如果服务没有该端口的属性,请使用完整url属性,指定解析规则以便解析url
#Specify the regex so the url can be parsed for the port value.
"http_property": "simple.webapp.address",
"http_default_port": "8280",
"https_property": "simple.webapp.https.address",
"https_default_port": "8290",
"regex": "\\w*:(\\d+)",
"site": "simple-site"
}
},
{
"name": "simple_logs",
"label": "Simple logs",
"requires_user_name": "false",
"url": "%@://%@:%@/logs",
"port":{
"http_property": "simple.webapp.address",
"http_default_port": "8288",
"https_property": "simple.webapp.https.address",
"https_default_port": "8290",
"regex": "\\w*:(\\d+)",
"site": "simple-site"
}
}
]
}
}
三、REST API
可以通过get方法看快速链接是否可用,如下:
/api/v1/stacks/[stack_name]versions/[stack_version]/services/[service_name]/quicklinks?QuickLinkInfo/default=true&fields=*
通过如下api可以查看quicklinks是否配置成功。