Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Include Page
spaceKeyGrouper
pageTitleNavigation

Panel
borderColor#ccc
bgColor#FcFEFF
titleColorwhite
titleBGColor#00a400

Image Removed  This topic is discussed in the "Grouper Installer" training video.

Children Display

The Grouper Installer is a jar that will install the Grouper API, quickstart data (optional), UI, WS, and client.  The only prerequisites are Java 7+ JDK (note, you shouldnt use Java8 in Grouper 2.2-), and the grouperInstaller.jar.Container in v2.5+.  This is only as a quick start at this point.  You will generally not use the installer to install a production environment, you will use your lessons learned from the installer in your quick start to have your steps prepared.  The only prerequisites are Java 8 JDK.  It will work in Windows, Unix, Mac (any OS where you can run DOS or shell scripts), however you will need docker so Unix/Mac are best.  It prints out saves a README.txt which files are being edited, and which commands are being run, so the user can learn from what is going on.  It uses the stock Grouper packages container so there is no magic or hidden configuration included.

Running without network

In Grouper 2.2.1 the installer can upgrade Grouper as well.

Here is a movie showing the installer (windows, unix/linux/mac)

Note, this is sort of a bootstrap, or quick start.  If you are managing dev/test/prod envs you might use this to build grouper, but then have other scripts and config files managed in those envs.  See this wiki as an example

Note: you should run the grouper loader all the time for any Grouper deployment.  It also runs background tasks even if you arent automatically loading groups.

Running without network

The Grouper installer requires the internet to download the Grouper tarballs.  If you want to run this without the network, download all the tarballs (example links for 2.2.1) (installer, apiBinary, ui, ws, client, psp) and the subjects file (into subjects.sql), and quickstart file (into quickstart.xml), ant, tomcat to the install directory.  Download all the patches.  When the script asks if you want to use the local files, type: t (or just <Enter> since the default is t)

Make a grouper.installer.properties

Code Block
# this should be before the version number
#download.server.url = http://localhost:8090/grouper-ws/temp
download.server.url = http://software.internet2.edu/grouper
 
# default version to install
grouper.version = 2.2.1

# if should use local files only for development
grouperInstaller.useLocalFilesOnlyForDevelopment = t

Run the installer like this (note use a semicolon instead of a colon on windows):

Code Block
java -jar grouperInstaller.jar

FAQ

How do I create a schema for my database?

Ask the DBA to do this, here is an example for a local Oracle installation

Code Block
CREATE USER grouper_v1_5 IDENTIFIED BY xxxxxxxx
 DEFAULT TABLESPACE "USERS"
 QUOTA UNLIMITED ON "USERS";

GRANT "CONNECT" TO grouper_v1_5;
GRANT "RESOURCE" TO grouper_v1_5;

-- 2 Roles for grouper_v1_5 
GRANT CONNECT TO grouper_v1_5;
GRANT RESOURCE TO grouper_v1_5;
ALTER USER grouper_v1_5 DEFAULT ROLE ALL;
-- 5 System Privileges for grouper_v1_5 
GRANT CREATE SEQUENCE TO grouper_v1_5;
GRANT CREATE SESSION TO grouper_v1_5;
GRANT CREATE TABLE TO grouper_v1_5;
GRANT CREATE VIEW TO grouper_v1_5;
GRANT UNLIMITED TABLESPACE TO grouper_v1_5;

I'm using local files for grouperInstaller.jar, but don't see an option for using local files which are in the jar's directory.

It will install the first time without using local files.  Then once things are downloaded and built, stop tomcat and hsql, and put some jars in the API lib/custom directory.  Then run the installer again, but dont download or extract the tarballs again, and it should build the UI/WS with your jars.

Problem with HSQL DB port:

If there is a problem with the HSQL port, then select that you do not want to use the default included database, then for the database URL, change the port to something else, e.g. from 9001 to 9002 with URL like this: jdbc:hsqldb:hsql://localhost:9002/grouper     Leave the username and pass as "sa" and <blank>, and continue

Problem with Java JDK:

There are two types of Java: JRE (runtime env), and JDK (development kit).  If you are running with the JRE (which doesnt have a compiler), then you need to make sure you run with the JDK.  If you type "javac -version" in your prompt, and it is not java6, or it is not found, then try running the installer with the absolute path of java, e.g. on windows:

Code Block
C:\projects\grouper.installer-2.0.3>"c:\Program Files\Java\jdk1.7.0_14\bin\java.exe" -jar grouperInstaller.jar

What do I do when I am done with the installer?

See the page on Getting Ready for Production

Example output

...

The Grouper installer requires the internet currently.  We can remove this requirement in the future if needed. 

FAQ

How do I create a schema for my database?

Ask the DBA to do this, here is an example for a local Oracle installation

Code Block
CREATE USER grouper_v1_5 IDENTIFIED BY xxxxxxxx
 DEFAULT TABLESPACE "USERS"
 QUOTA UNLIMITED ON "USERS";

GRANT "CONNECT" TO grouper_v1_5;
GRANT "RESOURCE" TO grouper_v1_5;

-- 2 Roles for grouper_v1_5 
GRANT CONNECT TO grouper_v1_5;
GRANT RESOURCE TO grouper_v1_5;
ALTER USER grouper_v1_5 DEFAULT ROLE ALL;
-- 5 System Privileges for grouper_v1_5 
GRANT CREATE SEQUENCE TO grouper_v1_5;
GRANT CREATE SESSION TO grouper_v1_5;
GRANT CREATE TABLE TO grouper_v1_5;
GRANT CREATE VIEW TO grouper_v1_5;
GRANT UNLIMITED TABLESPACE TO grouper_v1_5;


Problem with HSQL DB port:

If there is a problem with the HSQL port, then select that you do not want to use the default included database, then for the database URL, change the port to something else, e.g. from 9001 to 9002 with URL like this: jdbc:hsqldb:hsql://localhost:9002/grouper     Leave the username and pass as "sa" and <blank>, and continue

What do I do when I am done with the installer?

See the page on Getting Ready for Production

Example

Installing the v2.5 container with the installer

Using a config file

You can put a grouper.installer.properties in the same directory as the grouperInstaller.jar to control various aspects.  See the grouper.installer.example.properties for whats possible to put in there

...

Code Block
[appadmin@i2midev6 patchesAuto]$ ls
grouperInstaller.jar 
grouper.installer.properties
[appadmin@i2midev6 patchesAuto]$ java -cp .:grouperInstaller-x.y.z.jar edu.internet2.middleware.grouperInstaller.GrouperInstaller

...

Code Block
# this should be before the version number
download.server.url = httphttsp://software.internet2.edu/grouper

# default version to install
grouper.version = 2.3.0

# print out autorun keys in prompts so you can easily see how to configure the autorun
grouperInstaller.print.autorunKeys = false

...

Code Block
# this should be before the version number
download.server.url = httphttps://software.internet2.edu/grouper

# default version to install
grouper.version = 2.3.0

#### set this to true to try to use defaults for everything.  Only things without default values will need to be set
grouperInstaller.autorun.useDefaultsAsMuchAsAvailable = true

...