ambari之quicklinks

之前在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是否配置成功。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值