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 で利用できます。私にとって、これらは学ぶべきもう 1 つの API であり、限られた一連のタスクにのみ役立ちます。むしろ、汎用の WAS スクリプト ツール/ライブラリを探しています。

編集:この質問は、より大きな WebSphere 自動化プロジェクトに先行する調査の一部でした。私が尋ねていたライブラリは当時存在しなかったため、WDR の開発を開始しました。ここで見つけることができます: http://wdr.github.io/WDR/

4

2 に答える 2

4

IBM developerWorks には、 と呼ばれる非公式の (したがって、サポートされていない) ライブラリーがありwsadminlibます。これについては、ブラッドTが回答したstackoverflowに関する別の質問から知りました: wsadmin-jython-restart-was-appserver。このライブラリーは、wsadmin jython 構文についてあなたと同じように感じている数人の IBM 開発者によって作成されました。

このライブラリは別の 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 に答える