Urbancode Agent Relay Gotcha
Hickmat 100000QA3T Visits (6850)
Just got caught by this one so thought I'd do a quick blog post for it...
So first some background... I'm currently experimenting with deploying IBM BPM using Urbancode Deploy and to support this I've set up a number of Virtual Machines on my RHEL based Thinkpad. As part of this I needed to move the target machines on to a "host only" network and off of the main network on which my Urbancode Server is sitting. Given I now had to link these two networks I knew I could simply set up a Agent Relay on my base RHEL OS and use that to do the job. So I set about creating the following configuration:
This was very easy to set up and as I expected the Agent Relay and the Agents all appeared on-line. So job done I thought and I kicked off my deployment process only to have it fail immediately as the first step tried to download artifacts. Hmmm, not what I expected.
The error reported via the Urbancode Console was:
Error downloading plugin hash from http
I started to look through the logs on the Agent Relay found the following messages in the http
[WARN][SSLHandler: failed to get web connection: java
and when I took a look in the agent.out file on one of the failing agents I found the following:
So I definitely had connectivity issues somewhere but where. Given the agent relay and agents were all showing on-line the underlying connectivity looked good and no firewalls were getting in the way. I then started to look at what the agent relay might be doing. After digging around a bit I figured out that it must be trying to resolve the server hostname (icdscp016). I checked and this was in /etc/hosts on my base OS (which was hosting the relay) and I could ping that fine. So next I tried an nslookup and that highlighted the problem as it didn't resolve the hostname. After doing some searching on the Web I found out that it appears Linux doesn't use /etc/hosts when resolving hostnames and hence the relay couldn't find my server. With that nugget of information I just needed to find the right place to change this so the IP address of the server and not the hostname was used. The magic setting was in the "System Settings" tab of the "Settings" page in my Urbancode server and its was the "External Agent URL". I set this to use the servers IP address, restarted all my agents and then ran connectivity tests to make sure all was ok. Once all the tests had passed I kicked off my BPM installation process and this time it ran (only to fail later but that's due to the fact I'm still building the install process ).
Anyway hopefully this is useful should anyone else hit this issue.