Just a quick run through of what I’ve been doing for the last few days, namely setting up our build / development server. It’s running Fedora, and the end goal was to have redmine, artifactory and hudson all on the same server, all running on port 80. Once it’s installed and running we should be able to run automated builds (using hudson) when we commit to subversion and have those builds available from maven (using artifactory) for our Servicemix installation on another server.
It’s been a fun ride, redmine in particular was loads of fun to get going since I’ve never really setup a rails application before. Anyway, on with the run through. Please note that this is a very basic guide, and assumes you’re comfortable with the linux command line and so on, it’s not really for beginners.
Server
Install fedora, ensure apache / mysql are installed and working, also install the latest JDK (guide here) and ensure your JAVA_HOME environment variable is set correctly.
Redmine
Download & install redmine following instructions here (for this example assume you installed redmine into /var/redmine). You might have problems with bundler reporting some missing libraries, specifically ‘Rmagick’. this should help with that.
Install passenger from here
make a symlink from a folder in your apache webroot to the ‘public’ folder of wherever you installed redmine:
ln -s /var/redmine/public /var/www/html/redmine
add an .htaccess file in the ‘public’ folder of redmine containing:
PassengerAppRoot /var/redmine #this should be the physical location of the redmine root directory on the filesystem RailsBaseURI /redmine #this is the URI you want redmine to be accessible at, should match the symlink in /var/www/html/
Now in your web configuration folder (/etc/httpd/conf.d/) add a new ‘redmine.conf’ (or however you configure apache, it varies across versions of fedora I think) containing this:
Alias /redmine /var/www/html/redmine <Directory /var/www/html/redmine> Options Indexes ExecCGI FollowSymLinks -MultiViews AllowOverride All Order Deny,Allow Deny from None Allow from All </Directory>
Finally we need to set redmine to start in production mode. Edit /var/redmine/config/environment.rb and uncomment or add the following line at the top:
ENV['RAILS_ENV'] ||= 'production'
And that should be it… restart apache and you should be able to access redmine at:
http://yourhost/redmine
Artifactory
Download and install the ‘rpm installer’ for Artifactory using the instructions here
before setting up apache we need to change the port the ‘ajp’ connector runs on, as our hudson installation will steal this later.
edit the file: /opt/artifactory/tomcat/conf/server.xml and find the section that looks like this:
<Connector port="8009" protocol="AJP/1.3" maxThreads="500" minSpareThreads="20" maxSpareThreads="150" enableLookups="false" disableUploadTimeout="true" backlog="100"/>
change the connector port to “8010” and save the file
In the apache configuration, setup reverse proxying as follows (/etc/httpd/conf.d/artifactory.conf)
ProxyPreserveHost on <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /artifactory ajp://localhost:8010/artifactory retry=0 ProxyPassReverse /artifactory/ http://YOURHOST/artifactory/ ProxyRequests Off
Start artifactory (/etc/init.d/artifactory start) and restart apache (/etc/init.d/httpd restart) and that’s it really. Artifactory is now available at:
http://yourhost/artifactory
Hudson
Download and install Hudson using the method described here
Create a proxy config file for apache (/etc/httpd/conf.d/hudson.conf) containing the following:
ProxyPreserveHost on <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /hudson http://localhost:8080/hudson retry=0 ProxyPassReverse /hudson http://10.10.10.42/hudson ProxyRequests Off
Finally, we need to tell hudson that it’s running on /hudson otherwise all the css / js links break.
edit: /etc/sysconfig/hudson
and edit / change the following line (it’s near the bottom of the file):
HUDSON_ARGS="--prefix=/hudson"
Now start hudson (/etc/init.d/hudson start) restart apache and we’re done. Hudson is now available at http://yourhost/hudson