人性化的WebSphere脚本工具/库?

Mar*_*nka 9 websphere jython wsadmin

我正在开发大量用于管理WAS基础架构的脚本,而且我得到的印象是,IBM的某个人已经搞砸了wsadmin.这不是一个意外.

这是一个"简单"的例子:

for node in AdminConfig.list('Node').splitlines():
    nodeName = AdminConfig.showAttribute(node, 'name')
    for srv in AdminConfig.list('Server', node).splitlines():
        if AdminConfig.showAttribute(srv, 'serverType') == 'APPLICATION_SERVER':
            serverName = AdminConfig.showAttribute(srv, 'name')
            prop = AdminConfig.getid('/Node:%s/Server:%s/JavaProcessDef:/JavaVirtualMachine:/Property:java.awt.headless/' % (nodeName, serverName))
            if prop:
                AdminConfig.modify(prop, [ ['value','true'] ])
            else:
                jvm = AdminConfig.getid('/Node:%s/Server:%s/JavaProcessDef:/JavaVirtualMachine:/' % (nodeName, serverName))
                AdminConfig.create('Property', jvm, [ ['name', 'java.awt.headless'], ['value', 'true'] ], 'systemProperties')
Run Code Online (Sandbox Code Playgroud)

以上脚本不仅无法维护,而且难以理解.该wsadmin工具是一个只写工具!一个人写一个脚本,第二天就无法理解它是如何工作的,甚至是它的作用!

这样不容易吗?:

for node in list('Node'):
    nodeName = node.name
    for srv in node.list('Server'):
        if srv.serverType == 'APPLICATION_SERVER':
            jvm = srv.processDefinitions[0].jvmEntries[0]
            jvm.createOrModify('Property', { 'name': 'java.awt.headless' }, { 'value': 'true' })
Run Code Online (Sandbox Code Playgroud)

...如果只有WAS脚本更友好,人们可以很容易地弄清楚脚本会做什么而不用花费时间来尝试理解繁忙的API.更不用说易于维护.

有没有人见过/试图实现更友好的管理工具(或wsadmin库)?

我问,因为我实际上打算开发一个友好的Jython库,我只是想避免重新发明轮子.

我见过很多面向任务的Jython库.其中一些在较新版本的WAS中可用,另一些已在IBM developerWorks上发布,一些库可在Web上获得.对我来说,它们是另一个要学习的API,它们只对有限的任务有用.我宁愿寻找通用的WAS脚本工具/库.

编辑:此问题是更大的WebSphere自动化项目之前的研究的一部分.我当时询问的图书馆当时不存在,因此我开始开发WDR.你可以在这里找到它:http://wdr.github.io/WDR/.

Nic*_*oth 0

我所知道的唯一工具是 Rational Automation Framework。它旨在帮助自动部署、配置和管理许多不同的中间件组件。

http://www-01.ibm.com/software/rational/products/framework/

我没有直接使用这个工具本身,但我的理解是您不需要编写任何脚本来管理您的服务器。您基本上可以从一个环境(开发或测试)“导出”WAS 配置,然后将其“导入”到另一个环境中。它甚至可以保留您的配置的版本历史记录。

我有兴趣了解您遇到的任何其他工具。