“words—
lonely written words—are all you’ve got”

—Virginia Shea

“communication happens when I know you know what I know”

—Me

Clustering

Clustering can serve a few purposes:

  • Higher availability for the JSS
  • Load balancing the JSS
  • Better security when exposing the JSS to non-secure areas such as the Internet
  • Separation of the JSS (Tomcat application) server and database (MySQL) roles (possible without clustering)

JAMF Software only supports clustering the JSS server. It does not support high availability of your MySQL server. That’s not to say clustering MySQL won’t work, but rather it’s outside the scope of their products and services. If you’re interested in high availability of your MySQL server, you should look into products such as vSphere with vMotion. If you’re interested in failover for your MySQL database using replication, refer to the online documentation.

Goals

 Enable clustering
 Install an additional JSS
 Connect the new JSS to the existing MySQL database
 Verify the connectionEnable clustering

Enable clustering

We need to configure the first JSS, which is also running the MySQL database for clustering.

  1. Enable Use Clustering on the first JSS and set it as the Master. Because my JSS is also running on the same server as my MySQL database, it refers to the database on “localhost”. Click the Save button.
  2. Note the Cluster Awareness fields says “Not Aware”.
  3. Using the Terminal application, log in to your MySQL instance using the default user account “root”. This account has no password unless you set one earlier.
    Enter: mysql -u root -p
    When prompted for the password just press the return key or enter your password.
  4. The MySQL database must accept communications from the new server. This requires granting access to the database from the new server using its IP address and providing a name and password for authenticating.
    Enter: GRANT ALL ON jamfsoftware.* TO 'jamfsoftware'@192.168.5.226 IDENTIFIED BY 'jamfsw03';
    Grant access to second JSS
  5. When done, exit MySQL and close the Terminal application:
    Enter: quit

Install an additional JSS

Clustering is platform agnostic, which means one JSS can run on one operating system such as OS X while another runs on Windows or Linux. In this example, my primary JSS and MySQL database are running on OS X but I’ll install my second JSS on Windows.

  1. Install Java and the JSS on another server making sure its version number matches the version number of your existing JSS. You’ll direct the new JSS to the existing MySQL database, therefore, you don’t need to install MySQL again.

Connect the new JSS to the existing MySQL database

  1. On the second server with the newly installed JSS, open a browser and navigate to https://localhost:8443. Because MySQL doesn’t exist on this system, the JSS will display a Database Connection Error. Click the Edit Connection button.
    Database Connection Error
  2. Change the Database Hostname field from “localhost” to the IP address of the server running MySQL. Unless you’ve changed the default port or used a different name and password in the “GRANT ALL ON” command you ran earlier, leave the remaining fields alone. Click the Save button.
    Edit Database Connection

Verify the connection

  1. A successful connection displays the JSS Startup progress window. Unlike the first time we installed and configured the JSS, this time we won’t have to accept the End User License Agreement or create a first account.
    JSS Startup
  2. Log in using either your local Casper Admin account or a directory account. Directory accounts require your new JSS be able to access the directory connection configured in LDAP Servers. So long as the new JSS can ping the directory server in the connection, it should work.
  3. Verify clustering is working by revisiting the Clustering settings in either JSS. Note the Cluster Awareness field now says “Aware” and the second server’s address appears in the list at the bottom.
    Cluster Aware
  4. Also note the browser title bars now include asterisks. Two asterisks denote you’re viewing the Master JSS. One asterisk denotes you’re viewing a non-Master JSS.
    Master JSS

    Master JSS

    Non-Master JSS

    Non-Master JSS

Now that clustering is enabled, proceed with modifying your Apache Tomcat Settings in the JSS and configuring your load balanacer if clustering for high availability of your JSS or proceed with enabling a Limited Access server if clustering for security.