Ambari自定义服务开发-使用客户端下载配置文件
[toc]
在Ambari WebUI中可以下载客户端的配置文件,如下图所示
下面介绍这个下载配置文件是如何实现的。
# 修改metainfo.xml
在service.components
下添加component
,类型为CLIENT
<component>
<name>DORIS_CLIENT</name>
<displayName>Doris Client</displayName>
<category>CLIENT</category>
<cardinality>1+</cardinality>
<versionAdvertised>true</versionAdvertised>
<commandScript>
<script>scripts/doris_client.py</script>
<scriptType>PYTHON</scriptType>
</commandScript>
<configFiles>
<configFile>
<type>xml</type>
<fileName>fe.xml</fileName>
<dictionaryName>fe</dictionaryName>
</configFile>
<configFile>
<type>xml</type>
<fileName>doris-env.xml</fileName>
<dictionaryName>doris-env</dictionaryName>
</configFile>
<configFile>
<type>properties</type>
<fileName>fe.properties</fileName>
<dictionaryName>fe</dictionaryName>
</configFile>
<configFile>
<type>properties</type>
<fileName>doris-env.properties</fileName>
<dictionaryName>doris-env</dictionaryName>
</configFile>
<configFile>
<type>env</type>
<fileName>fe</fileName>
<dictionaryName>fe</dictionaryName>
</configFile>
<configFile>
<type>env</type>
<fileName>doris-env</fileName>
<dictionaryName>doris-env</dictionaryName>
</configFile>
</configFiles>
</component>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
说明:
参数 | 说明 |
---|---|
commandScript | 指定客户端安装逻辑 |
configFile | 下载配置文件类型 |
- type | 文件类型 |
- fileName | 在Ambari WebUI下载下来的文件名 |
- dictionaryName | 读取configuration目录下的对应配置文件名称前缀,不包含.xml |
# configFile.type介绍
取值范围:
参数 | 说明 |
---|---|
env | 将 dictionaryName 定义的配置文件中<name>content</name> 的属性内容放到新文件里下载 |
properties | 将 dictionaryName 定义的配置文件转换为 properties 格式,提供下载 |
xml | 将 dictionaryName 定义的配置文件转换为 xml 格式存储,提供下载 |
# doris_client.py 文件内容
tip:
这里只对客户端配置文件下载作演示,没有实际在服务器安装客户端,可以根据需求自己实现客户端安装逻辑。
#!/usr/bin/env python
# -*- coding: utf-8 -*--
from resource_management.libraries.script.script import Script
from resource_management.core.logger import Logger
from resource_management.core.resources import Directory
from resource_management import *
from resource_management.core.exceptions import ClientComponentHasNoStatus
from resource_management.core.logger import Logger
class Client(Script):
def install(self, env):
Logger.info("Install complete")
self.configure(env)
def configure(self, env):
Logger.info("Configuration complete")
def status(self, env):
raise ClientComponentHasNoStatus()
if __name__ == "__main__":
Client().execute()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 配置更新
将修改配置文件同步到服务器,重启ambari-server服务
# 配置文件下载
在ACTION
中可以直接下载
# 相关演示代码
https://download.csdn.net/download/zhangshenghang/88918283
上次更新: 2024/04/08, 10:55:49