私は 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/。