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:
- Tomcat 7.0.26
- PostgreSQL 9.1.4
- Ant 1.8.2
- OpenJDK 7u3
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.
User interface
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.
Apache
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