Work in progress |
This is the app that we intent to use for all our group management.
We will run this on an Ubuntu 12.04 VM.
I would like to stick as much as possible to Ubuntu provided packages, preferably the latest versions of everything. Confirmed on the list that Grouper can run fine with OpenJDK, so no need for the Sun Oracle Java stuff any more. So, at the moment it looks like we're going to use:
To get these installed on a pristine Ubuntu 12.04 system:
apt-get install --no-install-recommends subversion postgresql libpgjava tomcat7 openjdk-7-jdk ant |
Remove the old JRE:
apt-get purge openjdk-6-jre-headless |
Download the source code, in this case we're fetching version 2.1.1 and stick that under /opt:
cd /opt svn co http://anonsvn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_1/ |
Create the PostgreSQL database and credentials:
sudo su - postgres createuser -D -I -R -S -P grouper_user createdb -O grouper_user -T template0 grouper exit |
Because we run our databases on IPv6 only, we have to edit /etc/postgresql/9.1/main/postgresql.conf
to list:
listen_addresses = '::' |
Copy the default hibernate config file:
cd /opt/GROUPER_2_1_1/grouper/conf cp grouper.hibernate.example.properties grouper.hibernate.properties |
and edit accordingly. Note that the values should not be enclosed in quotes:
# Example: hibernate.connection.url = jdbc:postgresql://ip6localhost:5432/grouper hibernate.connection.username = grouper_user hibernate.connection.password = hackme |
Change all (6) occassions of the version string "1.5" into "1.7" in build.xml:
sed -i -e 's/"1\.5"/"1.7"/g' build.xml |
Symlink the database driver:
ln -s /usr/share/java/postgresql-jdbc4.jar /opt/GROUPER_2_1_1/grouper/lib/custom/ |
Compile sources:
cd /opt/GROUPER_2_1_1/grouper ant dist |
Create the database structure:
bin/gsh.sh -registry -runscript |
Check if this went OK:
bin/gsh.sh -registry -check |
Run the tests. This is an extensive test suite - on a powerful VM it took me about one hour:
bin/gsh.sh -test -all |
No errors should be reported in the end.
This sits in /grouper-ui
of the repository.
First change the version statement to 1.7:
cd /opt/GROUPER_2_1_1/grouper-ui sed -i -e 's/"1\.5"/"1.7"/g' build.xml |
Compile the app:
ant dist |
Create a file /etc/tomcat7/Catalina/localhost/grouper-ui.xml
with this content:
<?xml version="1.0" encoding="UTF-8"?> <Context path="/grouper" docBase="/opt/GROUPER_2_1_1/grouper-ui/dist/grouper" reloadable="false" /> |
Edit /etc/tomcat7/tomcat-users.xml so that there is a user called GrouperSystem, with a proper passworf:
<tomcat-users> <role rolename="grouper_user"/> <user username="GrouperSystem" password="hackme" roles="grouper_user"/> </tomcat-users> |
Change the permissions on the logging directory:
chown tomcat7:tomcat7 /opt/GROUPER_2_1_1/grouper/logs |
Restart tomcat
service tomcat7 restart |
You should now be able to go to http://<yourservername>:8080/grouper-ui/
and log in.
This is optional, but good practise for security considerations. All the JAVA stuff can run on unprivileged ports, and apache faces the internet.
cd /etc/apache2 a2enmod proxy_ajp |
Configure SSL certificates etc