This document explains the installation steps for the PSP. Here's an overview of how it was configured: 1. The PSP writes data to the directory installed on grinnell. 2. Group objects are created for each Grouper group (excluding the etc folder) in ou=grouper,ou=group,dc=alaska,dc=edu. The description attribute is populated for groups and folders. And the member attribute is populated for groups and contains the DN of members. 3. The "bushy" structure is used. 4. Incremental and bulk sync is configured. == Prepare LDAP == 1. Create the base DN that we're using to store groups in LDAP. {{{ [oracle@grinnell ~]$ ldapmodify -a -h localhost -p 1389 -D "cn=directory manager" -W Enter LDAP Password: dn: ou=grouper,ou=group,dc=alaska,dc=edu objectClass: organizationalUnit ou: grouper aci: (targetattr="*") (version 3.0; acl "Grouper Write Access";allow (add,delete,read,write,search,compare) (userdn="ldap:///uid=grouper03,ou=resource,dc=alaska,dc=edu" and ip="127.0.0.1");) adding new entry "ou=grouper,ou=group,dc=alaska,dc=edu" }}} == Install PSP == 1. Download and copy the PSP to /tmp/ on grinnell. The tarball is located at http://www.internet2.edu/grouper/release/2.1.4/grouper.psp-2.1.4.tar.gz. 2. Extract and copy files. Note that we're using the generic LDAP example configuration as a starting point. {{{ [root@grinnell ~]# cd /srv/grouper [root@grinnell grouper]# ls grouper.api-2.1.4 grouper.api-2.1.4.tar [root@grinnell grouper]# mv /tmp/grouper.psp-2.1.4.tar.gz . [root@grinnell grouper]# gunzip grouper.psp-2.1.4.tar.gz [root@grinnell grouper]# tar xf grouper.psp-2.1.4.tar [root@grinnell grouper]# cp /srv/grouper/grouper.psp-2.1.4/lib/custom/* /srv/grouper/grouper.api-2.1.4/lib/custom/ [root@grinnell grouper]# cp /srv/grouper/grouper.psp-2.1.4/conf/psp-example-grouper-to-ldap/psp* /srv/grouper/grouper.api-2.1.4/conf/ [root@grinnell grouper]# cp /srv/grouper/grouper.psp-2.1.4/conf/psp-example-grouper-to-ldap/ldap.properties /srv/grouper/grouper.api-2.1.4/conf/ }}} == Configure PSP == 1. Find the following properties in /srv/grouper/grouper.api-2.1.4/conf/ldap.properties and update the values. {{{ edu.vt.middleware.ldap.ldapUrl= edu.vt.middleware.ldap.bindDn= edu.vt.middleware.ldap.bindCredential= edu.vt.middleware.ldap.baseDn=dc=alaska,dc=edu edu.internet2.middleware.psp.groupsBaseDn=ou=grouper,ou=group,dc=alaska,dc=edu edu.internet2.middleware.psp.peopleBaseDn=ou=people,dc=alaska,dc=edu }}} 2. In the file /srv/grouper/grouper.api-2.1.4/conf/psp-services.xml, replace the Service element with id=ldap with the following: {{{ --> is required to instantiate the , so supply a do-nothing resource. - -> }}} 3. Create the file /srv/grouper/grouper.api-2.1.4/conf/psp-vt-ldap-1.xml with the following contents. Be sure to update the password. Also, note that this is connecting to the directory on grinnell using the non-SSL port 1389. If this was connecting to a directory on a remote machine, the SSL port should be used. {{{ }}} 4. Find the following properties in /srv/grouper/grouper.api-2.1.4/conf/grouper-loader.properties and update the values. Properties need to be uncommented. {{{ changeLog.consumer.psp.class = edu.internet2.middleware.psp.grouper.PspChangeLogConsumer changeLog.consumer.psp.quartzCron = 0 * * * * ? changeLog.psp.fullSync.class = edu.internet2.middleware.psp.grouper.PspChangeLogConsumer changeLog.psp.fullSync.quartzCron = 0 0 5 * * ? }}} == Restart Grouper Daemon == {{{ [root@grinnell ~]# cd /srv/grouper/grouper.api-2.1.4 [root@grinnell grouper.api-2.1.4]# ps -ef | grep edu.internet2.middleware.grouper.app.gsh.GrouperShellWrapper root 5226 5225 0 08:51 pts/3 00:00:22 java -Xms64m -Xmx750m -Dgrouper.home=/srv/grouper/grouper.api-2.1.4/ -classpath /srv/grouper/grouper.api-2.1.4/conf:/srv/grouper/grouper.api-2.1.4/dist/lib/grouper.jar:/srv/grouper/grouper.api-2.1.4/lib/grouper/*:/srv/grouper/grouper.api-2.1.4/lib/custom/*:/srv/grouper/grouper.api-2.1.4/lib/jdbcSamples/*:/srv/grouper/grouper.api-2.1.4/lib/ant/*:/srv/grouper/grouper.api-2.1.4/lib/test/*:/srv/grouper/grouper.api-2.1.4/dist/lib/test/*:/srv/grouper/grouper.api-2.1.4/src/resources: edu.internet2.middleware.grouper.app.gsh.GrouperShellWrapper -loader root 10073 5202 0 09:38 pts/3 00:00:00 grep edu.internet2.middleware.grouper.app.gsh.GrouperShellWrapper [root@grinnell grouper.api-2.1.4]# kill -9 5226 [root@grinnell grouper.api-2.1.4]# nohup ./bin/gsh.sh -loader & [1] 2217 [root@grinnell grouper.api-2.1.4]# nohup: ignoring input and appending output to `nohup.out' }}} == Run Bulk Sync Manually == {{{ [root@grinnell grouper.api-2.1.4]# ./bin/gsh.sh -psp -bulkSync ... }}}