blob: a75022a45dee87979499742129d656c26b8e6605 [file] [log] [blame] [view]
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
# OpenLDAP & Fortress QUICKSTART
Apache Fortress 1.0.0 and OpenLDAP Quickstart System Architecture
![OpenLDAP & Fortress System Architecture](images/fortress-openldap-accel-system-arch.png "OpenLDAP & Fortress System Architecture")
-------------------------------------------------------------------------------
## Table of Contents
* Document Overview
* SECTION 1. Prerequisites
* SECTION 2. Apache Fortress Core and OpenLDAP Setup
* SECTION 3. Apache Fortress Core Integration Test
* SECTION 4. Apache Tomcat Setup
* SECTION 5. Apache Fortress Rest Setup
* SECTION 6. Apache Fortress Web Setup
___________________________________________________________________________________
## Document Overview
* This document contains instructions to install Apache Fortress 1.0.0 Core, Web, Rest and OpenLDAP.
-------------------------------------------------------------------------------
## SECTION 1. Prerequisites
Minimum hardware requirements:
* 2 Cores
* 4GB RAM
Minimum software requirements:
* Centos or Debian Machine
* Java SDK 7++
* Apache Maven3++
*Everything else covered in steps that follow.*
___________________________________________________________________________________
## SECTION 2. Apache Fortress Core and OpenLDAP Setup
1. Download the package:
a. from git:
```
git clone --branch 1.0.0 https://git-wip-us.apache.org/repos/asf/directory-fortress-core.git
cd directory-fortress-core
```
b. or download package:
```
wget http://www.apache.org/dist/directory/fortress/dist/1.0.0/fortress-core-1.0.0-source-release.zip
unzip fortress-core-1.0.0-source-release.zip
cd fortress-core-1.0.0
```
2. Prepare the package:
```
cp build.properties.example build.properties
cp slapd.properties.example slapd.properties
```
*[slapd.properties.example](slapd.properties.example) contains the slapd default config. Learn more about how the config works: [README-CONFIG](README-CONFIG.md)*
3. Download Symas OpenLDAP Silver *Full Server and Client Installation*:
https://symas.com/downloads/
![Symas OpenLDAP Download Page](images/sol-silver-downloads.png)
*SILVER downloads don't require a registration.*
4. Place either a centos or debian package under the folder named *ldap* : [fortress-core-[VERSION]/ldap](./ldap)
5. Edit the *slapd.properties* file:
```
vi slapd.properties
```
6. Update the *slapd.properties* file *slapd.install* statement with a reference to the openldap install downloaded earlier.
a. For Debian installs:
```
slapd.install=dpkg -i symas-openldap-silver.version.platform.deb
```
b. For Centos:
```
slapd.install=rpm -i symas-openldap-silver.version.platform.rpm
```
7. Specify whether you want to enable the slapo-rbac overlay:
a. Yes, I want to enable slapo-rbac:
```
rbac.accelerator=true
```
*To use this option, symas-openldap version 2.4.43++ is required.*
b. No, I don't want to enable slapo-rbac:
```
rbac.accelerator=false
```
8. Save and exit
9. Prepare your terminal for execution of maven commands.
```
#!/bin/sh
export M2_HOME=...
export JAVA_HOME=...
export PATH=$PATH:$M2_HOME/bin
```
10. Run the maven install:
```
mvn clean install
```
11. Install, configure and load the slapd server:
```
mvn test -Pinit-slapd
```
12. To start the slapd process:
```
mvn test -Pstart-slapd
```
13. To stop the slapd process:
```
mvn test -Pstop-slapd
```
* must be run with either sudo or root privs
___________________________________________________________________________________
## SECTION 3. Apache Fortress Core Integration Test
1. From fortress core base folder, enter the following commands:
```
mvn install -Dload.file=./ldap/setup/refreshLDAPData.xml
mvn install -Dload.file=./ldap/setup/DelegatedAdminManagerLoad.xml
```
*These will build the Directory Information Tree (DIT), create the config and data policies needed for the integration test to follow.*
2. Next, enter the following command:
```
mvn -Dtest=FortressJUnitTest test
```
*Tests the APIs against your LDAP server.*
3. Verify the tests worked:
```
Tests run: 113, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 196 sec - in org.apache.directory.fortress.core.impl.FortressJUnitTest
Results :
Tests run: 113, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-antrun-plugin:1.8:run (default) @ fortress-core ---
[INFO] Executing tasks
fortress-load:
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:19 min
[INFO] Finished at: 2016-01-07T09:28:18-06:00
[INFO] Final Memory: 27M/532M
[INFO] ------------------------------------------------------------------------
```
4. Rerun the tests to verify teardown APIs work:
```
mvn -Dtest=FortressJUnitTest test
```
5. Verify that worked also:
```
Tests run: 141, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 207.081 sec - in org.apache.directory.fortress.core.impl.FortressJUnitTest
Results :
Tests run: 141, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-antrun-plugin:1.8:run (default) @ fortress-core ---
[INFO] Executing tasks
fortress-load:
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:30 min
[INFO] Finished at: 2016-01-07T09:33:11-06:00
[INFO] Final Memory: 27M/531M
[INFO] ------------------------------------------------------------------------
```
Notice 141 tests ran this time vs 113 the first time.
Test Notes:
* If tests complete without errors Apache Fortress works with your OpenLDAP server.
* These tests load thousands of objects into the target ldap server.
* Warning messages are negative tests in action.
6. Optional sections in the [README](README.md) file:
* SECTION 11. Instructions to run the Apache Fortress Command Line Interpreter (CLI).
* SECTION 12. Instructions to run the Apache Fortress Command Console.
* SECTION 13. Instructions to build and test the Apache Fortress samples.
* SECTION 14. Instructions to performance test.
___________________________________________________________________________________
## SECTION 4. Apache Tomcat Setup
During this section, you will be asked to setup Apache Tomcat 8 and prepare for usage with Apache Fortress
1. Download and prepare the package:
```
wget http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.0.30/bin/apache-tomcat-8.0.30.tar.gz
tar -xvf apache-tomcat-8.0.30.tar.gz
sudo mv apache-tomcat-8.0.30 /usr/local/tomcat8
```
*Change the tomcat version as neeeded - v7 and beyond are ok.*
2. Download the fortress realm proxy jar into tomcat/lib folder:
```
sudo wget http://repo.maven.apache.org/maven2/org/apache/directory/fortress/fortress-realm-proxy/1.0-RC42/fortress-realm-proxy-1.0-RC42.jar -P /usr/local/tomcat8/lib
```
3. Prepare tomcat fortress usage:
```
sudo vi /usr/local/tomcat8/conf/tomcat-users.xml
```
4. Add tomcat user to deploy fortress:
```
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<user username="tcmanager" password="m@nager123" roles="manager-script"/>
<user username="tcmanagergui" password="m@nager123" roles="manager-gui"/>
```
5. Save and exit tomcat-users.xml file
6. Configure Tomcat as a service (optional)
a. Edit the config file:
```
vi /etc/init.d/tomcat
```
b. Add the following:
```
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
CATALINA_HOME=/usr/local/tomcat8
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
```
c. Add the init script to startup for run level 2, 3 and 4:
```
cd /etc/init.d
chmod 755 tomcat
chkconfig --add tomcat
chkconfig --level 234 tomcat on
```
7. Start tomcat server:
a. If running Tomcat as a service:
```
service tomcat start
```
b. Else
```
sudo /usr/local/tomcat8/bin/startup.sh
```
8. Verify clean logs after startup:
```
tail -f -n10000 /usr/local/tomcat8/logs/catalina.out
```
9. Verify setup by signing onto the Tomcat Manager app with credentials userId: tcmanagergui, password: m@nager123
```
http://hostname:8080/manager
```
___________________________________________________________________________________
## SECTION 5. Apache Fortress Rest Setup
During this section, you will be asked to setup Apache Fortress Rest Application
1. Download the package:
a. from git:
```
git clone --branch 1.0.0 https://git-wip-us.apache.org/repos/asf/directory-fortress-enmasse.git
cd directory-fortress-enmasse
```
b. or download package:
```
wget http://www.apache.org/dist/directory/fortress/dist/1.0.0/fortress-rest-1.0.0-source-release.zip
unzip fortress-rest-1.0.0-source-release.zip
cd fortress-rest-1.0.0
```
2. Prepare:
```
cp ../[FORTRESS-CORE-HOME]/config/fortress.properties src/main/resources
```
*where FORTRESS-CORE-HOME is package location on your machine*
3. Build, perform fortress rest test policy load and deploy to Tomcat:
```
mvn clean install -Dload.file=./src/main/resources/FortressRestServerPolicy.xml tomcat:deploy
```
4. Redeploy (if need be):
```
mvn tomcat:redeploy
```
5. Smoke test:
```
mvn test -Dtest=EmTest
```
___________________________________________________________________________________
## SECTION 6. Apache Fortress Web Setup
During this section, you will be asked to setup Apache Fortress Web Application
1. Download the package:
a. from git:
```
git clone --branch 1.0.0 https://git-wip-us.apache.org/repos/asf/directory-fortress-commander.git
cd directory-fortress-commander
```
b. or download package:
```
wget http://www.apache.org/dist/directory/fortress/dist/1.0.0/fortress-web-1.0.0-source-release.zip
unzip fortress-web-1.0.0-source-release.zip
cd fortress-web-1.0.0
```
2. Prepare:
```
cp ../[FORTRESS-CORE-HOME]/config/fortress.properties src/main/resources
```
*where FORTRESS-CORE-HOME is package location on your machine*
3. Build, perform fortress web test policy load and deploy to Tomcat:
```
mvn clean install -Dload.file=./src/main/resources/FortressWebDemoUsers.xml tomcat:deploy
```
4. Redeploy (if need be):
```
mvn tomcat:redeploy
```
5. Open browser and test (creds: test/password):
```
http://hostname:8080/fortress-web
```
6. Click on the links, to pull up various views on the data stored in the directory.
7. Run the selenium automated test:
```
mvn test -Dtest=FortressWebSeleniumITCase
```
*Requires Firefox on target machine.*
___________________________________________________________________________________
#### END OF README-QUICKSTART-SLAPD