10

我正在开发许多用于管理 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')

上面的脚本不仅不可维护,而且不可读。该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' })

...如果 WAS 脚本更友好,人们可以很容易地弄清楚脚本的作用,而无需花费几分钟来尝试理解繁忙的 API。更不用说易于维护了。

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

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

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

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

4

2 回答 2

4

IBM developerWorks 有一个名为wsadminlib. 我从 stackoverflow 上的另一个问题中发现了这一点,由 BradT 回答: wsadmin-jython-restart-was-appserver。该库是由一些 IBM 开发人员创建的,他们对 wsadmin jython 语法的感受与您一样。

由于这个库只是另一个 jython 文件,您可以将其导入到您自己的脚本中,并直接调用方法。这是一个启动应用程序服务器的示例,取自wsadminlib-blog

execfile('/tmp/wsadminlib.py')

servername = 'server1'
nodename = 'node1'

startServer(nodename,servername)

您可以在此处此处的图书馆中找到更多信息。同样,这些链接在 BradT 对上述另一个问题的回答中。

于 2012-12-12T15:56:16.747 回答
0

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

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

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

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

于 2012-11-26T20:22:59.317 回答