我希望Ambari管理(安装,启动,停止,状态)自定义服务。我已经弄清楚了 Ambari 堆栈的工作原理,但我现在面临着一个开发工作流程问题:测试它的最佳方法是什么?
到目前为止,我正在做的是编写一些Python代码(/var/lib/ambari/resources/stacks/HDP/2.3/MY_SERVICE/package/...),每次我想测试它时,我都需要:
- 删除服务(使用 API)
- 重新启动安巴里
- 安装服务(通过 UI 中的所有步骤)
- 捕捉日志
这非常耗时,而且并不是真正优化的开发工作流程......
有没有更好的方法来测试用于管理服务的 Python 代码(install()、start()、status() 方法)?
虽然这个问题是前段时间问的,但我遇到了同样的问题,并找到了解决这个问题的方法:
- 在命令行上设置 python 路径:
export PYTHONPATH=/usr/lib/python2.6/site-packages/
- 通过
python ./package/scripts/service.py INSTALL /var/lib/ambari-agent/data/command-53.json /var/lib/ambari-server/resources/stacks/HDP/2.5/services/TESTSERVICE /tmp/out.txt DEBUG /tmp
运行脚本
如果您只是调用没有任何参数的python ./package/scripts/service.py
,您将获得有关命令行参数的一些帮助。json 文件来自以前通过 Web-GUI 安装的服务。
您还必须根据您的操作系统环境更改 python 路径。在指定的 python 目录 (/usr/lib/python2.6/site-packages/) 中,您应该会看到指向 ambari python libs 的链接。