User Experience Matters--install OpenDS in 5 easy steps

I recently moved over to the Directory Services team to take on the Product Line Management position.  I had a lot of fun working with the OpenSSO team and I am excited about the great things that team has released into the market place.  Another exciting thing about the job change, besides continuing to work with the OpenSSO team as they embed OpenDS as the configuration store in their product, is that I get to work with another team that values the importance of User Experience when building software.  Enterprise software for years has promulgated the myth that all that matters is innovation or features within new releases.  User Experience has always been an after-thought.

OpenDS has worked hard to promulgate a different approach which puts User Experience at the top of the priority list.  You can see this in the installation experience of the software.  MySQL builds software with a design guideline Martin Mickos call the "15 minute rule".  This is the rule that their enterprise version should be downloaded and installed in 15 minutes or less.  OpenDS can beat this by being installed in less than 3 minutes.  This is even true when you are allowing OpenDS to generate 2000 simluated Directory Entries.  Powerful stuff.  Not only do you get a great directory engine up and running quickly but if you are a Developer or QA Engineer you can get going quicker as well.

More to come on the performance data and some of our plans soon.  See for yourself how great the User Experience is for OpenDS in the video below:


Comments:

This is my OpenDS for OpenSSO installation script
===============================================
#!/bin/bash

DISTR=OpenDS-1.0.0-build016
PORT=1389

#settings

DIRNAME=`dirname ${0}`

if [[ -f /opt/opends/install.txt ]]; then
echo "OpenDS already installed"
exit 1
fi

if ! ${DIRNAME}/check_ip.sh ; then
exit 1
fi

echo "This will install OpenDS on this server"
echo "Press ENTER to continue or Ctrl-C to abort"
read

if [[ -z ${DS_PASSWORD} ]]; then
echo -n "Enter password "
read DS_PASSWORD
echo -n "Confirm password "
read DS_PASSWORD1
if [[ ! "${DS_PASSWORD}" = "${DS_PASSWORD}" ]]; then
echo "Password not match"
exit 1
fi
fi

if [[ -z "${JAVA_HOME}" ]]; then
JAVA_HOME="/etc/alternatives/java_sdk"
echo "Set JAVA_HOME to '${JAVA_HOME}'"
else
echo "JAVA_HOME set to '${JAVA_HOME}'"
fi

if [[ ! -d "${JAVA_HOME}" ]]; then
echo "JDK not installed on this host"
${DIRNAME}/jdk_setup.sh
fi

export OPENDS_JAVA_HOME=${JAVA_HOME}

if [[ ! -x /usr/bin/unzip ]]; then
yum -y -d 0 install unzip
fi

echo -n "Extract files from ${DISTR}.zip..."
if [[ -d /opt/opends ]]; then
rm -f -R /opt/opends
fi
mkdir -p /opt
unzip -q /mnt/JumpStart/bootstrap/distr/${DISTR}.zip -d /opt
mv /opt/${DISTR} /opt/opends
echo "Done!"

echo "Run OpenDS setup..."
#--quiet
/opt/opends/setup --cli --no-prompt --doNotStart --ldapPort ${PORT} --rootUserDN "cn=Directory Manager" --rootUserPassword ${DS_PASSWORD} --baseDN dc=opensso,dc=java,dc=net -a

mv /opt/opends/config/config.ldif /opt/opends/config/config.ldif~
cat /opt/opends/config/config.ldif~ | sed "s/ds-cfg-single-structural-objectclass-behavior: reject/ds-cfg-single-structural-objectclass-behavior: accept/g" > /opt/opends/config/config.ldif
#create configuration file
if [[ -f /etc/sysconfig/opends ]]; then
rm /etc/sysconfig/opends
fi

echo "Write configuration to /etc/sysconfig/opends"
cat << EOF > /etc/sysconfig/opends
export OPENDS_JAVA_HOME=${JAVA_HOME};
EOF

echo "Create opends group"
groupadd -r -f -g 450 opends
echo "Create opends user"
adduser -r -M --home /opt/opends --shell /sbin/nologin --comment "OpenDS service account" --gid opends -n -u 450 opends

cp -R /mnt/JumpStart/bootstrap/files_opends/\* /
mkdir -p /opt/opends/logs/old

echo -n "Change ownership and permissions on files..."
chown -R opends:opends /opt/opends
chmod 600 /etc/sysconfig/opends
echo "done!"

if [[ ! -x /usr/bin/sudo ]]; then
yum -y -d 0 install sudo
fi

if [[ ! -x /usr/sbin/logrotate ]]; then
yum -y -d 0 install logrotate
fi

if [[ ! -x /usr/sbin/crond ]]; then
yum -y -d 0 install vixie-cron
service crond start
fi

if [[ ! -f /etc/crontab ]]; then
yum -y -d 0 install crontabs
service crond restart
fi

#enable sudo in init.d scripts
mv /etc/sudoers /etc/sudoers~
sed '/requiretty/s/\^/#/' /etc/sudoers~ > /etc/sudoers
chmod 0440 /etc/sudoers

chkconfig --add opends
chkconfig opends on
service opends start

/opt/opends/bin/ldapmodify -a -h localhost -p ${PORT} -D "cn=Directory Manager" -w ${DS_PASSWORD} -f /tmp/famsuffix.ldif
rm -f /tmp/fams\*.ldif

Posted by Vladimir Romanov on October 12, 2008 at 04:34 PM PDT #

[Trackback] See a video demo.

Posted by Marina Sum's Blog on October 21, 2008 at 02:20 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Sharing 12 years of technology experience as developer, product and program manager, and marketing director. Identity Management, Security, and Product Management issues occupy my mind during the working day. Water Polo keeps me healthy.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today