views:

39

answers:

3

I am in the unfortunate situation where I need to deploy and upgrade packages and config files on machines with no root access and no ability to use or install a package manager. Are there any neat solutions that allow creation of custom install packages?

I am open to custom compiles of some software in a custom location on the servers if it helps the situation.

Im almost at the point where I might end up having to write my own java package management system :(

In case its relevant some further information. The installer needs to install and configure the following:

  • Apache Tomcat
  • WAR files into Apache Tomcat
  • ActiveMQ
  • Some JAR files with some corresponding Cron entries
+1  A: 

This sounds a bit perverse. Why do you need to "deploy" Tomcat / ActiveMQ to (lots of) machines that you don't have root or sudo access to?

Anyway, I don't see the need for a custom installer to do this (* see note below).

The yum --installroot /home/whatever <package> should install <package> in a non-standard location. If you cannot use yum or whatever, you should be able to download a binary ZIP or TAR file and unpack it. And once you have installed / unpacked whatever, you can leap in and edit the configuration files using the relevant app tools ... or a text editor. Tomcat can be installed in any directory you feel like, and run using your own login account if you need. I imaging ActiveMQ is the same.

Deployment of a WAR file is simply a matter of copying it to Tomcat's webapp directory.

Creation of a cron entry is simply a matter of running the crontab(1) command.

And if you have to go through this process lots of times, you could write some shell scripts to do the repetitive work for you.

(* Note - there are a couple of possible roadblocks.

  1. You will need root/sudo access deploy a startup file for Tomcat, etc to "/etc/init.d" to get it to start automatically when the system boots. There is no easy way around this. The "/etc/init.d" directory is only writeable by root.

  2. If you want manually launch Tomcat to run on ports 80 / 443, you will need root/sudo access to launch it. Again, there is no easy way around this. Only a "root" process can listen on port numbers less that 1024.)

Stephen C
Of course the situation is quite stupid, however it is being imposed on me by my workplace. They do not allow root access, and the production support area insists there must be an installer to install all the components (so they dont have to do anything). And yes of course this means if a server is rebooted tomcat does not come back up. Not my fault.
corydoras
In that case, I'd just write a clunky shell script and let the production support guys figure it out when it breaks, etc, etc.
Stephen C
Thanks for both the correct (proper) answer, and then the actual practical answer (: We ended up just writing a custom installation shell script which more than likely only I will be able to maintain. (Not much else I can do)
corydoras
+1  A: 

Take a look at InstallJammer. You can develop graphical or console-based installers for both platforms from a single project. They won't require root unless you need them to.

Damon
Yea ... but make sure that management is aware of the development and maintenance cost. The OP's situation is down to some kind of management stupidity.
Stephen C
A: 

InstallBuilder is the tool we use to package Bitnami stacks including the Java ones like Alfresco which include JRE, Tomcat, etc. and do not require admin privileges

Daniel Lopez