Deployment Example: Sun Java System Communications Services for Access Anywhere (EdgeMail)

ProcedureTo Configure Calendar Server on BE Clusters

Before You Begin

Make sure directory server is configured and hostname is in /etc/hosts on both nodes. Know the Bind DN password and login (cn=directory manager) for ldap and the calmaster password.

Steps
  1. Run the calendar configurator on node 1, the active calendar node:


    phys-bedgeN-1# cd /shared/bedge5/cal/opt/SUNWics5/cal/sbin
    phys-bedgeN-1# sh ./csconfigurator.sh -nodisplay
    
    Provide the following information during the configuration
    
    Sample:
       LDAP Server Name: ds-amer-02.us.example.com
       LDAP Port: 389
       Directory Manager Bind DN: cn=Directory Manager
       Directory Manager Bind Password: xxxxxxxx
       Base DN:  dc=example,dc=com
       Calendar Administrator Username:  calmaster
       Calendar Administrator Password: xxxxxxxx
       Email Alarms:  Enabled
    
       Administrator Email Address: wwcs-csg-if@example.com
       SMTP Hostname: mail-amer.example.com
       Service Port: [80]
       Maximum Sessions: [5000]
       Maximum Threads: [20]
       Number of server processes: [4]
       Runtime Username:  icsuser
       Runtime Usergroup:  icsgroup
       Start after successful installation:    No
       Start on system startup:  No
       Config Directory: /etc/opt/SUNWics5/config
       Database location: /shared/bedge5/cal/opt/csdb
       Logs: /shared/bedge5/cal/opt/logs
       Temporary Files: /shared/bedge5/cal/opt/tmp
  2. Move the config directory to the shared filesystem


    phys-bedgeN-1# cd /shared/bedge5/cal/opt/SUNWics5/cal
    phys-bedgeN-1# rm config
    phys-bedgeN-1# cp -pr /etc/opt/SUNWics5/config .
    phys-bedgeN-1# cd /shared/bedge5/cal/opt/SUNWics5/cal/lib
    phys-bedgeN-1# rm config
    phys-bedgeN-1# ln -s ../config config
    phys-bedgeN-1# cd /shared/bedge5/cal/opt/SUNWics5/cal/sbin 
    phys-bedgeN-1# rm config
    phys-bedgeN-1# ln -s ../config config
  3. Create the hotbackup and archive directories for database backups:


    phys-bedgeN-1# cd /shared/bedge5/cal/dbbackup
    phys-bedgeN-1# mkdir hotbackup archive
    phys-bedgeN-1# chown icsuser:icsgroup hotbackup
    phys-bedgeN-1# chown icsuser:icsgroup archive
  4. Edit the ics.conf file and add the following to the end of the file. Change shared paths and add IP for logical host.


    phys-bedgeN-1# cd /share/bedge5/cal/opt/SUNWics5/cal/config
    phys-bedgeN-1# cp ics.conf ics.conf.orig

    ! Configure hotbackups and archiving
    !
    caldb.berkeleydb.archive.path = "/shared/bedge5/cal/dbbackup/archive"
    caldb.berkeleydb.archive.enable = "yes"
    caldb.berkeleydb.archive.mindays = "3"
    caldb.berkeleydb.archive.maxdays = "5"
    caldb.berkeleydb.archive.threshold = "70"
    ! Interval between hotbackup or archivebackup in seconds
    caldb.berkeleydb.archive.interval = "120"
    !
    caldb.berkeleydb.hotbackup.enable = "yes"
    caldb.berkeleydb.hotbackup.path = "/shared/bedge5/cal/dbbackup/hotbackup"
    caldb.berkeleydb.hotbackup.mindays = "3"
    caldb.berkeleydb.hotbackup.maxdays = "5"
    caldb.berkeleydb.hotbackup.threshold = "70"
    logfile.store.logname = "store.log"
    !
    ! End -- Hotbackup/Archiving section
    !
    local.server.ha.enabled = "yes"
    local.server.ha.agent = "SUNWscics"
    service.http.listenaddr = "logicalHostIP"
  5. Modify the ics.conf file with the following parameters. When adding parameters to the ics.conf file that don't already exist, add them in the alphabetical order of the parameter name.


    caldb.berkeleydb.circularlogging = "no"
    caldb.serveralarms.contenttype = "text/xml"
    caldb.serveralarms.url = "enp:///ics/customalarm"
    service.calendarsearch.ldap = "y"
    caldb.cld.type = "directory"
    logfile.loglevel = "Information"
    service.dwp.enable = "yes"
    service.dwp.port = "9779"
    service.ens.port = "7997"
    local.hostname = "bedge5-cal1.us.example.com"
    local.servername = "bedge5-cal1.us.example.com"
    service.ens.host = "bedge5-cal1.us.example.com"
    service.http.calendarhostname = "bedge5-cal1.us.example.com"

    Uncomment the following two lines:


    caldb.serveralarms.url = "enp:///ics/customalarm"
    caldb.serveralarms.contenttype = "text/xml"

    Comment out this line:


    !service.listenaddr = "INADDR_ANY"

    Locate the first line below and add the second one after it:


    service.siteadmin.userid = ""
    service.store.enable = "yes"
    

    Uncomment the default DWP server entry and set it appropriately:


    ! Default DWP server (LDAP CLD only), used if user's icsDWPhost value does not exist.
    !
    caldb.dwp.server.default = "bedge5-cal1.us.example.com"
  6. Update all existing ics.conf files (FEs and BEs) with new calendar backend server information. In order for all of the frontend calendar servers to be able to communicate with all of the backend database servers, all backend servers must be listed in all ics.conf files. Services must be restarted in order for this change to take effect.

    The following parameter must be uncommented in the ics.conf files and parameters changed on all servers (front and back ends) when a new backend server is brought on line:


    caldb.dwp.server.bedge5-cal1.us.example.com.ip = "bedge5-cal1.us.example.com"
  7. The fully qualified name for the calendar server MUST be the first entry in /etc/hosts files on all systems for this to work and the /etc/nsswitch.conf MUST be set up correctly. Example /etc/hosts file entry for BRM:


    10.1.82.143  bedge5-cal1.us.example.com bedge5-cal1.us.example.com bedge5-cal1

    For reference, a copy of the current ics.conf file from the Broomfield BE calendar cluster is in the appendix of this cookbook.

  8. Create the cal1-svc resource and define dependencies.


    phys-bedgeN-1# mkdir /shared/bedge5/cal/opt/opt
    phys-bedgeN-1# cd /shared/bedge5/cal/opt/opt
    phys-bedgeN-1# ln -s ../SUNWics5 SUNWics5
    phys-bedgeN-1# scrgadm -a -j cal1-svc-rs -g cal1-svc-rg -t SUNW.scics \
        -x Confdir_list=/shared/bedge5/cal/opt -y \
        Resource_dependencies=cal1-storplus-rs,cal1-addr-rs -y Port_list=80/tcp
    phys-bedgeN-1# scswitch -e -j cal1-svc-rs
  9. Verify that cal1-svc-rg, cal1-addr-rs, cal1-storplus-rs, and cal1-svc-rs are online and calendar processes running on node 1.


    phys-bedgeN-1# scstat -g
    phys-bedgeN-1# ps -ef | grep icsuser
  10. Verify services can be switched over to Node 2 successfully, and back again


    phys-bedgeN-1# scswitch -z -g cal1-svc-rg -h phys-bedge5-2
    phys-bedgeN-1# scstat -g
    phys-bedgeN-1# scswitch -z -g cal1-svc-rg -h phys-bedge5-1
    phys-bedgeN-1# scstat -g
  11. Duplicate the contents of /var/sadm/pkg/SUNWics5 on the other node. This is primarily for monitoring so that SunMC can determine if the package exists and set $serverroot. On the node that calendar was installed:


    phys-bedgeN-1# mkdir /global/.devices/node@1/tmp
    phys-bedgeN-1# cd /var/sadm/pkg
    phys-bedgeN-1# tar cf /global/.devices/node@1/tmp/ics5.tar SUNWics5

    On the other node:


    phys-bedgeN-2# cd /var/sadm/pkg
    phys-bedgeN-2# tar xf /global/.devices/node@1/tmp/ics5.tar
    phys-bedgeN-2# rm -r /global/.devices/node@1/tmp