5.2 Setting Up the GWIA in a Linux Cluster

You should already have reviewed Section 5.1, Planning the Internet Agent in a Linux Cluster and filled out the Internet Agent Clustering Worksheet. You are now ready to complete the following tasks to set up the GWIA in a clustering environment:

5.2.1 Creating a Domain for the GWIA

The GWIA domain will be a secondary domain. To create it, follow the instructions in Section 3.2, Creating a New Secondary Domain in a Linux Cluster, taking your information from the GWIA Clustering Worksheet, rather than the System Clustering Worksheet, then return to this point.

Do not create any post offices in the GWIA domain.

After you have created the domain, continue with Installing the MTA for the GWIA Domain.

5.2.2 Installing the MTA for the GWIA Domain

The MTA for the GWIA domain can be installed just like any other MTA in your clustered GroupWise system. Follow the instructions in Section 3.4.1, Installing and Setting Up the Linux Agents in Your Cluster, then return to this point.

You do not need to edit the MTA startup file. You do not need to modify the Cluster Resource object properties until after you have installed the GWIA.

After you have installed the MTA, continue with Installing and Configuring the Linux GWIA in a Cluster.

5.2.3 Installing and Configuring the Linux GWIA in a Cluster

After you have created a domain for the GWIA and installed the MTA for that domain, you are ready to install and configure the GWIA.

Installing and Setting Up the Linux GWIA Software in Your Cluster

The GWIA must be installed on each node in its failover list (Internet Agent Clustering Worksheet item 3).

Running the Linux GWIA Installation Program on the Preferred Node
  1. Make sure that the GWIA software is available in the software distribution directory you created in Step 6 in Section 3.1, Setting Up a New GroupWise System in a Linux Cluster.

  2. Mount the GWIA partition (Internet Agent Clustering Worksheet item 1) where the GWIA message queues are located.

  3. From the software distribution directory, start the GroupWise Installation program and select Configure GroupWise for Clustering.

    Configure GroupWise for Clustering option
  4. Install the GWIA software, following the steps provided in Linux: Installing the GWIA in Installing the GroupWise Internet Agent in the GroupWise 2012 Installation Guide.

  5. Configure the GWIA according to the GroupWise Internet Agent Installation Worksheet that you filled out in Section 5.1, Planning the Internet Agent in a Linux Cluster, paying special attention to the cluster resource information on the Server Information page.

    Server Information page

    As a result of selecting Configure GroupWise for Clustering on the preferred node, the following cluster-specific configuration actions are performed:

    • The GWIA startup file (gwia.cfg) is created in mount_point/groupwise/agents/share on the shared resource so that the GWIA uses the same startup file regardless of which cluster node it is running on. The --home switch includes the mount point and the path to the database so that the startup file is valid when mounted to each cluster node.

    • The --cluster switch is added to the GWIA startup file to inform the GWIA that it is running in a cluster.

    • The --ip startup switch is set to the secondary IP address of the shared resource where the domain is located. This ensures that the GWIA runs with the same IP address regardless of which cluster node it is running on.

    • The --log startup switch is set to a location on the shared resource (mount_point/groupwise/agents/log) so that GWIA logging information is written to the same log file regardless of which cluster node it is running on.

    • If this is the first GroupWise agent installed on this cluster node, the GroupWise High Availability service is automatically configured and its configuration file (gwha.conf) is created in the /etc/opt/novell/groupwise directory. If another GroupWise agent has already been installed on this cluster node, the gwha.conf file is updated to include the GWIA.

    • The clusterimport.conf file in the gwinst subdirectory of the software distribution directory from which you ran the GroupWise Installation program is updated, so that the cluster-specific information collected when you configured the GWIA on the preferred node is available when you install the GWIA on subsequent nodes.

    • The GWIA is not configured to start automatically on system startup. In a cluster, you do not want the GWIA to start automatically whenever a node restarts.

  6. Configure the GWIA to run as a non-root user, as described in the applicable section of the GroupWise 2012 Installation Guide:

  7. Continue with Running the Linux GWIA Installation Program on Subsequent Nodes.

Running the Linux GWIA Installation Program on Subsequent Nodes
  1. On the next node in the GWIA failover list, mount the GWIA partition (Internet Agent Clustering Worksheet item 1) where the GWIA message queues are located.

  2. From the software distribution directory you created in Step 6 in Section 3.1, Setting Up a New GroupWise System in a Linux Cluster, start the GroupWise Installation program and select Configure GroupWise for Clustering.

    Because of the existence of the clusterimport.conf file in the gwinst subdirectory of the software distribution directory, a new installation option, Import Clustering Data, is now available on the main GroupWise Installation program page.

    GroupWise Installation program main page
  3. Install the GWIA software on the cluster node as usual, but do not use the Configure option.

  4. On the main page of the Installation program, click Import Clustering Data, then click Next.

    Import Clustering Data page

    All GroupWise agents that you have installed from the software distribution directory are listed, based on the information stored in the clusterimport.conf file.

  5. Select the GWIA, then click OK.

    The Import Clustering Data option performs the following configuration actions for each subsequent node where you run it:

    • The grpwise script is created in the /etc/init.d directory on the current cluster node.

    • The GroupWise High Availability service is automatically configured on the current cluster node and its configuration file (gwha.conf) is created in the /etc/opt/novell/groupwise directory. It is configured specifically for the GWIA.

    Because the GWIA configuration file (gwia.cfg) and log files are stored on the shared resource, they do not need to be customized for each cluster node.

  6. Configure the GWIA to run as a non-root user, as described in the applicable section of the GroupWise 2012 Installation Guide:

  7. Repeat Step 1 through Step 6 for each cluster node in the GWIA failover list.

    After you install and configure the GWIA on each node in its failover list, the cluster node is ready for the GWIA to fail over to it.

  8. Continue with Testing Your Linux GWIA Installation on Each Node.

Testing Your Linux GWIA Installation on Each Node
  1. Test the GWIA by starting it with a user interface, as described in Linux: Starting the GWIA in Installing the GroupWise Internet Agent in the GroupWise 2012 Installation Guide.

    /opt/novell/groupwise/agents/bin/gwia --show @gwia.cfg &
    
  2. Stop the GWIA by clicking File > Exit.

  3. After you can see that the GWIA stopped successfully, test it by starting it as a daemon, as described in Starting the Linux Agents as Daemons in Installing GroupWise Agents in the GroupWise 2012 Installation Guide.

    rcgrpwise start domain.gwia
    rcgrpwise status domain.gwia
    
  4. Stop the GWIA.

    rcgrpwise stop domain.gwia
    rcgrpwise status domain.gwia
    
  5. Make sure you have completed all the tasks described in Installing the GroupWise Internet Agent in the GroupWise 2012 Installation Guide.

    A few tasks, such as assigning a postmaster, are not dealt with in this cluster-oriented section.

  6. Repeat the steps in Running the Linux GWIA Installation Program on the Preferred Node for each node in the GWIA failover list.

When you have installed the GWIA on all of the nodes in the GWIA failover list, continue with Configuring the Clustered Linux GWIA for SSL.

Configuring the Clustered Linux GWIA for SSL

If you plan to enable SSL, as described in Securing GWIA Connections with SSL in Internet Agent in the GroupWise 2012 Administration Guide, you must make the SSL certificate file and key file available to the GWIA in the cluster. The default locations for the SSL certificate file and key file are on the cluster nodes along with the GroupWise software, rather than being located with the domain and post office on one or more GroupWise partitions. To avoid having multiple copies of these files in multiple locations, you should set the locations in ConsoleOne.

  1. On the GWIA partition, create the directory where you want to store the certificate and key file required for SSL.

  2. Copy the certificate file and key file into the new directory.

    If you need assistance obtaining these files, see Server Certificates and SSL Encryption in Security Administration in the GroupWise 2012 Administration Guide.

  3. In ConsoleOne, browse to and select the Domain object.

  4. Right-click the GWIA object, then click Properties.

  5. Click GroupWise > SSL Settings.

  6. In the Certificate File field, browse to and select the certificate file.

  7. In the SSL Key File field, browse to and select the key file.

  8. Click OK.

  9. Continue with Configuring the Linux GWIA Cluster Resource to Load and Unload the GWIA and Its MTA.

Configuring the Linux GWIA Cluster Resource to Load and Unload the GWIA and Its MTA

The properties of the Cluster Resource object define how the GWIA partition functions within the cluster, how the GWIA is loaded and unloaded, and how failover and failback situations are handled. Complete the following tasks for the GWIA cluster resource:

Modifying the Cluster Resource Load Script for the Linux GWIA and Its MTA

The cluster resource load script executes whenever the GWIA cluster resource comes online.

To set up the load script in iManager:

  1. Expand Clusters, then click Cluster Options.

  2. In the Cluster field, browse to the Cluster object where the GWIA cluster resource is located.

  3. Click the Cluster object to display the cluster resources that belong to the cluster.

  4. Select the GWIA cluster resource that you created when you set up the GWIA partition, then click Details.

  5. Click Scripts > Load Script.

  6. (Conditional) If this is an NSS volume or a shared pool, use a load script similar to the following example, depending on the configuration of your cluster and nodes:

    #!/bin/bash 
    . /opt/novell/ncs/lib/ncsfuncs
    
    # mount filesystem
    exit_on_error ncpcon mount /opt="noatime,nodiratime" volume_name=volume_ID
    
    # add IP address
    exit_on_error add_secondary_ipaddress gwia_partition_ip_address
    
    # start service
    exit_on_error /etc/init.d/grpwise start domain
    exit_on_error /etc/init.d/grpwise start domain.gwia
    
    1. In the mount filesystem section, specify the volume name and volume ID of the GWIA partition that you are clustering (System Clustering Worksheet item 5):

    2. In the add IP address section, specify the secondary IP address of the GWIA partition (System Clustering Worksheet item 7)

    3. In the start service section, provide the commands to start the MTA first, following by the GWIA.

  7. (Conditional) If this is a traditional Linux volume, use a load script similar to the following example, depending on the configuration of your cluster and nodes:

    #! /bin/bash
    . /opt/novell/ncs/lib/ncsfunc
    
    # define IP address
    RESOURCE_IP=gwia_partition_ip_address
    
    # define filesystem type
    MOUNT_FS=filesystem
    
    # define device (if using EVMS)
    exit_on_error evms -f /var/opt/novell/ncs/ContainerActivate -rl
                                                     Share ‘uname -n‘
    MOUNT_DEV=/dev/evms/Share/dat
    
    # define mount point
    MOUNT_POINT=/mnt/mount_point_directory
    
    # mount filesystem
    exit_on_error mount -t $MOUNT_FS $MOUNT_DEV $MOUNT_POINT -o noatime,nodiratime
    
    # add IP address
    exit_on_error add_secondary_ipaddress $RESOURCE_IP
    
    # start service
    exit_on_error /etc/init.d/grpwise start domain
    exit_on_error /etc/init.d/grpwise start domain.gwia
    
    exit 0
    
    1. In the define IP address section, specify the secondary IP address of the GWIA partition (Internet Agent Clustering Worksheet item 1).

    2. In the define filesystem type section, specify the filesystem type that is in use in use on the nodes in the cluster (System Clustering Worksheet item 5).

    3. In the define mount point section, specify the mount point directory in use for the nodes in the cluster (System Clustering Worksheet item 5).

    4. In the start service section, provide the commands to start the MTA first, following by the GWIA.

  8. Click OK to save the load script.

Modifying the Cluster Resource Unload Script for the Linux GWIA and Its MTA

The cluster resource unload script executes whenever the GWIA cluster resource goes offline. Programs should be unloaded in the reverse order of how they were loaded. This ensures that supporting programs are not unloaded before programs that rely on them in order to function properly.

  1. On the iManager Cluster Resource Properties page of the GWIA cluster resource, click Scripts > Unload Script.

  2. (Conditional) If this is an NSS volume or a shared pool, use an unload script similar to the following example, depending on the configuration of your cluster and nodes:

    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    
    # request service stop
    ignore_error /etc/init.d/grpwise stop domain.gwia
    ignore_error /etc/init.d/grpwise stop domain
    
    # stop service otherwise
    sleep 8
    ignore_error pkill -fx "'/opt/novell/groupwise/agents/bin/gwia
         @/media/nss/volume_name/groupwise/agents/share/gwia.cfg'"
    ignore_error pkill -fx "'/opt/novell/groupwise/agents/bin/gwmta
         @/media/nss/volume_name/groupwise/agents/share/domain_name.mta'"
    
    # delete IP address
    ignore_error del_secondary_ipaddress gwia_partition_ip_address
    
    # unmount filesystem
    exit_on_error umount /mnt/mount_point_directory
    
    # return status
    exit 0
    
    1. In the request service stop section, provide the commands to stop the GWIA first, followed by the MTA.

    2. In the stop service otherwise section, adjust the sleep command as needed so that the agents can shut down normally on your system without being inadvertently killed by the pkill command the follows.

    3. In the delete IP address section, specify the secondary IP address of the GWIA partition.

    4. In the unmount filesystem section, specify the mount point directory in use for the nodes in the cluster.

    5. (Conditional) If you are running the GroupWise High Availability service (gwha), stop it before the script stops the agents, then start it again at the end of the unload script.

      This prevents the GroupWise High Availability service from trying to restart the agents while the script is trying to stop them.

      Add the following section before the commands to stop the agents:

      # Temporarily disable the gwha service under xinetd
      ignore_error /sbin/chkconfig -s gwha off
      ignore_error kill -HUP `pidof xinetd`
      

      Add the following section before the return status section:

      # Restart the gwha service under xinetd
      ignore_error /sbin/chkconfig -s gwha on
      ignore_error kill -HUP `pidof xinetd`
      
  3. (Conditional) If this is a traditional Linux volume, use an unload script similar to the following example, depending on the configuration of your cluster and nodes:

    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    
    # request service stop
    ignore_error /etc/init.d/grpwise stop domain.gwia
    ignore_error /etc/init.d/grpwise stop domain
    
    # stop service otherwise
    sleep 8
    ignore_error pkill -fx "'/opt/novell/groupwise/agents/bin/gwia
         @/media/nss/volume_name/groupwise/agents/share/gwia.cfg'"
    ignore_error pkill -fx "'/opt/novell/groupwise/agents/bin/gwmta
         @/media/nss/volume_name/groupwise/agents/share/domain_name.mta'"
    
    # define IP address
    RESOURCE_IP=gwia_partition_ip_address
    
    # define mount point
    MOUNT_POINT=/mnt/mount_point_directory
    
    # delete IP address
    ignore_error del_secondary_ipaddress $RESOURCE_IP
    
    # unmount filesystem
    exit_on_error umount $MOUNT_POINT
    
    # return status
    exit 0
    
    1. In the request service stop section, provide the commands to stop the GWIA first, followed by the MTA.

    2. In the stop service otherwise section, adjust the sleep command as needed so that the agents can shut down normally on your system without being inadvertently killed by the pkill command the follows.

    3. In the define IP address section, specify the secondary IP address of the GWIA partition.

    4. In the define mount point section, specify the mount point directory in use for the nodes in the cluster.

    5. (Conditional) If you are running the GroupWise High Availability (gwha) service, stop it before the script stops the agents, then start it again at the end of the unload script.

      This prevents the GroupWise High Availability service from trying to restart the agents while the script is trying to stop them.

      Add the following section before the request service stop section:

      # Temporarily disable the gwha service under xinetd
      ignore_error /sbin/chkconfig -s gwha off
      ignore_error kill -HUP `pidof xinetd`
      

      Add the following section before the return status section:

      # Restart the gwha service under xinetd
      ignore_error /sbin/chkconfig -s gwha on
      ignore_error kill -HUP `pidof xinetd`
      
  4. Click OK to save the unload script.

Setting the Failover List and Policies for the Linux GWIA and Its MTA
  1. On the iManager Cluster Resource Properties page of the GWIA cluster resource, click General.

    The default policy settings are often appropriate. By default, a cluster resource:

    • Fails over automatically if the node it is running on fails

    • Starts automatically on the next node in its failover list

    • Continues running at its failover location, even after its most preferred node is again available

      If you are considering changing these defaults, see the Novell Cluster Services Administration Guide for Linux for your version of OES Linux.

  2. Under Preferred Nodes, arrange the nodes in the cluster into the desired failover list for the GWIA (Internet Agent Clustering Worksheet item 3).

  3. Click OK.

Enabling Internet Addressing for Your Clustered GroupWise System

Setting up Internet addressing for a clustered GWIA is no different from setting it up for an GWIA in any other environment. Follow the instructions in Configuring Internet Addressing in Internet Agent in the GroupWise 2012 Administration Guide, then return to this point.

Forcing Use of the GWIA Secondary IP Address

Novell Cluster Services uses Postfix to send cluster email alerts using the primary IP address. Postfix and the GWIA both default to using port 25. You must configure the GWIA to bind exclusively to the secondary IP address in order to avoid a port conflict between Postfix and the GWIA.

  1. Click GroupWise > Network Address.

  2. In the TCP/IP Address field, provide the secondary IP address (Internet Agent Clustering Worksheet item 1) for the GWIA to use for sending outgoing messages.

  3. Select Bind Exclusively to TCP/IP Address.

  4. Click OK.

  5. Continue with Verifying GWIA Object Properties.

Verifying GWIA Object Properties

During installation of the GWIA, the GWIA object should have been configured correctly. However, it can be helpful to verify certain cluster-specific information in order to familiarize yourself with the configuration of a clustered GWIA.

Accessing GWIA Object Properties
  1. In ConsoleOne, browse to and select the GWIA domain in order to display its contents.

  2. Right-click the GWIA object, then click Properties.

  3. Continue with Verifying the Reference to the GWIA Cluster Resource.

Verifying the Reference to the GWIA Cluster Resource

In the GWIA object properties pages in ConsoleOne:

  1. Click SMTP/MIME > Settings.

  2. Verify the contents of the Hostname/DNS “A Record” Name field.

    This field displays the hostname as currently configured in DNS. It should display the hostname that corresponds to the secondary IP address of the GWIA cluster resource. For more information, see Section 5.1.5, Preparing DNS for the Clustered Linux GWIA.

  3. Make changes if necessary.

  4. Continue with Verifying the Reference to the Mount Point Directory.

Verifying the Reference to the Mount Point Directory

In the GWIA object properties pages in ConsoleOne:

  1. Click Server Directories.

  2. Verify that the displayed directories match the mount point directory and the domain directory.

  3. Make changes if necessary.

  4. Continue with Verifying Post Office Links.

Verifying Post Office Links

In the GWIA object properties pages in ConsoleOne:

  1. Click Post Office Links.

  2. Verify that the Access Mode column displays C/S (for client/server mode) for all post offices serviced by the GWIA.

  3. Verify that the Links column displays the secondary IP addresses of the GroupWise partitions where post offices reside, not the IP addresses of any nodes in the cluster.

  4. Make changes if necessary.

  5. Continue with Forcing Use of the GWIA Secondary IP Address.