Upgraded to snv_93

Courtesy of the corp. that I work for, I was able to upgrade my u40m2 on Friday night to build 93 of SXCE. Joy of joys, wonder of wonders – ZFS Root here I come!

I could have LU’d to 93 from the existing 89 BE, but I wouldn’t have got the ZFS Root goodness since you have to be on 90 before you can do that. Pain. Oh well, been thinking about a reconfig of my zones for a while now, time to get that happening.

So – installed to a spare-ish disk (45Gb ZFS rpool), attached the mirror after rebooting into snv_93′s xVM kernel and started customising the system config. The mirror sync took around 5 minutes. Zone install for the one non-global zone I now require took 5 minutes – zoneroot on ZFS … goodness!

Then I needed to get Apache Roller 4, Apache httpd 2.2, Apache Tomcat 6 and PostgreSQL 8.3 configured. This took me quite a few hours, since I had to get figure out why setting “postgresql_83/data” didn’t seem to stick, where to deploy roller’s webapp to, how to get tomcat’s app manager working, and how to do the AJP passthru from apache to tomcat.

I realised that no matter what I set “postgresql_83/data” to, it was still set to /usr/postgres/8.3/data. Why? It’s because in the svc manifest it appears as a property group:

<property_group name='postgresql_83' type='application'>
<propval name='bin' type='astring'
value='/usr/postgres/8.3/bin' />
<propval name='data' type='astring'
value='/usr/postgres/8.3/data' />
<propval name='log' type='astring'
value='server.log' />
<propval name='value_authorization' type='astring'
value='solaris.smf.value.postgres' />
</property_group>

I could set the user and group ok, because they are different property types:

<method_context>
<method_credential user='postgres' group='postgres' />
</method_context>

Doh!

So that bit worked ok, now for tomcat. Had to edit the server.xml file to setup the connectors and the server name, that was about it. Oh, added the “manager” role to tomcat-users.xml, then I could wander on over to the manager url. Except that I couldn’t really because the AJP proxying wasn’t setup. That bit at least was really easy:

JkWorkersFile /etc/apache2/2.2/conf.d/workers.properties
JkShmFile  /var/apache2/2.2/logs/mod_jk.shm
JkLogFile    /var/apache2/2.2/logs/mod_jk.log
JkLogLevel    info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkMount /roller/* worker1
JkMount /manager/* worker1
JkMount /docs/* worker1

A quick svcadm restart apache22 tomcat and then I was ready to deploy the roller webapp using the tomcat manager console.

Few more tweaks required at that point – needed to put the postgresql.jar and mail*.jar files in $CATALINAHOME/lib rather than $CATALINAHOME/classes/lib. Ditto for roller-custom.properties. When I did the deployment, I needed to set the context path (it’s not optional, really), and I already had a preconfigured roller.xml file to put into the manager webapp.

Then a quick shutdown of apache22, tomcat, postgresql followed by a restart – all good. Yay!