<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Websphere on Marcello Barnaba</title>
    <link>https://sindro.me/tags/websphere/</link>
    <description>Recent content in Websphere on Marcello Barnaba</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 11 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sindro.me/tags/websphere/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ansible-wsadmin: Bypassing AdminConfig to Automate WebSphere via JMX</title>
      <link>https://sindro.me/posts/2026-04-11-ansible-wsadmin/</link>
      <pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/posts/2026-04-11-ansible-wsadmin/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; — IBM WebSphere has a clean configuration API (ConfigService) buried under a broken string-based wrapper (AdminConfig). I built an object-oriented Jython layer that hooks into ConfigService directly via JMX — easing configuration and ensuring type correctness through metadata introspection — plus a persistent daemon that eliminates JVM boot overhead, and 55 idempotent scripts that integrate with Ansible&amp;rsquo;s change detection. &lt;a href=&#34;https://github.com/vjt/ansible-wsadmin&#34; target=&#34;_blank&#34;&gt;github.com/vjt/ansible-wsadmin&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In 2021, I spent six months automating the &lt;a href=&#34;https://www.ifad.org/&#34; target=&#34;_blank&#34;&gt;IFAD&lt;/a&gt; WebSphere infrastructure with Ansible. The stack was IBM WebSphere Application Server (WAS), WebSphere Portal Server (WPS), and Business Automation Workflow (BAW) — a clustered deployment with a Deployment Manager, multiple nodes, federated LDAP, SIB messaging, the works.&lt;/p&gt;&#xA;&lt;p&gt;The standard approach to automating WAS is to write Jython scripts using &lt;code&gt;AdminConfig&lt;/code&gt;, &lt;code&gt;AdminTask&lt;/code&gt;, and &lt;code&gt;AdminApp&lt;/code&gt; — the four global scripting objects that IBM provides inside &lt;a href=&#34;https://en.wikipedia.org/wiki/Wsadmin&#34; target=&#34;_blank&#34;&gt;wsadmin&lt;/a&gt;. I tried that. It lasted about a day before I started looking at what&amp;rsquo;s underneath.&lt;/p&gt;&#xA;&lt;p&gt;What I found changed how I approached the entire project. It also produced a library full of ideas I never had a chance to describe properly — until now, with a little help from &lt;a href=&#34;https://claude.ai&#34; target=&#34;_blank&#34;&gt;Claude&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
