Multiple Syracuse

Hello,

We are trying to implement Multiple Syracuse (V11.5) installation for the same solution aiming Cluster between both syracuse servers.

We have been followed those documentation:

So far, we have full X3 Solution working with 1 Syracuse installed connected to 1 MongoDB (No plan to use Cluster of MongoDB so far)

From an other server (Vms), we would like to install a second syracuse, but we are facing this error message during installation and connection to MongoDB.

Client.crt, client.key and ca.cacrt are exactly the same file used to install the first syracuse.

  • Any idea what should prevent this second syracuse to connect to MongoDB ? 
  • Are we doing good ?, Does  this configuration will answer our needs ?
  • Once all syracuse installed, should we have to configure to activate Clustering ?

Thank you,

Regards,

Parents
  • Are those local help files you are using? If you are logged into Sage X3, you can access the online help. The topic is "How to install multiple node servers"

    1. You are not entering the FQDN
    2. Did you generate the keys for the new server?

    With regards to the clustering. For every server installation that is done, an entry is created in the host entity.

    From the online help for the topic "Host"

    When the Syracuse web platform runs on a customer site, it can be installed on several servers that run in a cluster. On a given server, several instances of node can run (usually one per core used for Syracuse). When the client accesses a server in the cluster, the nanny process associated to this server will perform load balancing between the different node instances on the current server but also on other servers in the cluster.

    For every server on which an installation is done, an entry is created in this host entity.

    You may need to make changes as far as processes or ports or certificates but by default the load balancing is active.

    I am copying in the current online help topic related to multiple node installation below. Hopefully it is formatted ok.

    How to install multiple node servers

    This document explains how to install a second node.js server (for scalability purposes) on an existing installation. The additional server shares the same MongoDB repository.

    This procedure describes a Windows installation, but the information can be used for any operating system on which the X3 web server is usable.

    Example

    • You have a running Syracuse environment on X3ServerA with a MongoDB and an ElasticSearch installed and set.
    • You want to install a secondary Syracuse server on X3ServerB.
    • On Server X3ServerB, the Syracuse prerequisites are met (except for the MongoDB and the elastic search installation).

    Operation on X3ServerA

    • Open a cmd window.
    • Go to the Syracuse installation directory, and type the following commands:
    cd syracuse
    cd certs_tools
    certgen.bat

    The last command requires you to enter data and answer some questions:

    • Select option (1): Create new certificate and private key.
    • Enter the server name (in our case X3ServerB).
    • Enter the server name for tcp connection (in our case X3ServerB).
    • Enter the days of validity (5000 for example).
    • Enter the passphrase for the new private key.
    • Reenter the passphrase for the new private key.
    • Enter the passphrase for the private key of the CA certificate (you need to know this passphrase).
    • Enter the port of the Syracuse server where you want to transfer the certificate (enter 8124; but you will get an error message because the server is not installed yet).

    The following operation will run:

    Generate key pair ...
    Generate certificate ...
    Write private key output/testserver.key ...
    Write certificate output/testserver.crt ...
    Write public key output/testserver.pem ...
    Transfer data to xxxserver:8124 ...
    Cannot connect to xxserver: java.net.UnknownHostException: X3ServerB
    Press RETURN to continue
    Finished


    Now you can return to your cmd window and type:

    cd output

    First, check that x3serverb.crt, x3serverb.key and x3serverb.pem were generated. 
    Then:

    • Copy the x3serverb.pem in the runtime keys subfolder.
    • Copy x3serverb.crt, x3serverb.key AND ca.cacrt on X3ServerB (for example in c:\sage\cert\x3serverb).

    Operation on X3ServerB

    • Start the Syracuse server installation.
    • On step 4, choose the new installation option.
    • On step 5, enter the installation path.
    • On Step 7, specify X3ServerA in the Host Name field and the correct port for MongoDB. An information message will appear : This MongoDB is used and already has a database with the name ‘syracuse’ ! Do you want to continue?
    • Click the 'OK' button to validate.
    • On Step 8, specify X3ServerA in the Host Name field and the port for ElasticSearch.
    • On Step 9, specify the path where you copied the certificate files (for example in c:\sage\cert without x3serverb at the end !).
    • IMPORTANT : Clear the Simplified certificates installation for a single server.
    • Validate all the steps after and check for errors in the log :
    Server name X3SERVERB
    Error: Nanny already installed Error: Nanny already installed
      at start (C:\Sage\Syracuse\syracuse\bin\node_modules\syracuse-load\lib\balancer.js:512:12)
      at __streamline$run (C:\Sage\Syracuse\syracuse\bin\node_modules\streamline\lib\fibers-fast\runtime.js:56:14)

    Disregard this error.

    • Before executing the next command, ensure that X3ServerB is running the same version as X3ServerA.
    • If the X3ServerA is on version 6 + hotfix, we need to install the hotfix on X3ServerB.

    • Open a cmd window. You must be connected with the same account that runs the node.js server.

    • Go to the Syracuse installation directory, and type the following commands (enter the passphrase for the new private key you entered when generating the certificate): cd syracuse passphrase.cmd “passphrase”

    Your are now able to connect to your additional server.

    Casey Knapp

    Principal Analyst, North America Services

    Sage

  • in reply to Casey K

    Hello Casey,

    Thank your for your answer.

    The helps we used are online from Sage online Documentation.

    We have also used the documentation you indicate to generate new key from Syracuse 1 (X3ServerA) ( (How to install multiple node servers).

    Those files were generated usign the step by step you indicated (SX3Client2.crt, SX3client2.key and ca.cacrt)

    And then we indicate them during Syracuse 2 (X3ServerB) installation.

    Next step is to indicate which MongoDb to use.

    Indicating the full server name (FQDN) result the same error message.

    All of theses steps seems to be right regarding Sage Documentation.

    Thank again for any comments you will have.

    Regards,

  • in reply to Julien BARGETTO

    In looking at your screenshots I noticed that you are checking the box for an SSL connection. Is this truly the case?

    If you uncheck the check box does it move on to the next prompt?

  • in reply to Casey K

    Hello Casey,

    Yes mongoDb is configured to accept only SSL connections. Same error message were generated.

    Now, I am a bit confused ... don't know How, don't know why ... but somehow the installation of the second syracuse success to connect to the mongoDB. NO change has been done on Syracuse Server neitheir on the MongoDB. The only action done that could impact the installation were stopping and restarting firewall and mongoDB service. !

    We are continuing installation process. 

    Thank you for your advice.

    Regards,

  • in reply to Julien BARGETTO

    Both Syracuse Server are running and are able to open a session in X3.

    However, it seems that the second server is not fully configured. Security Field is not activated the SX3Client2 (our second Syracuse).

    Online help is saying : 

    In the list view: The selection made in this check box tells that all certificates of that server are OK and that it can exchange confidential information with the other servers. It is selected only if the fields are missing certificates, missing CA certificates, and untrusted hosts in the detail view are empty (read-only).

    Our SX3Client (Syracuse1) is considered as untrusted host by SX3Client2 (Syracuse2)

    Did we miss a step ?

    During installation of Syracuse 2, those files (generated by certs_tools/certgen.bat of Syracuse 1) were used.

    Don't know if related,

    but the last step of the installation has been done successully

    Do you have any idea what we did wrong ?

    Thank you !

Reply
  • in reply to Julien BARGETTO

    Both Syracuse Server are running and are able to open a session in X3.

    However, it seems that the second server is not fully configured. Security Field is not activated the SX3Client2 (our second Syracuse).

    Online help is saying : 

    In the list view: The selection made in this check box tells that all certificates of that server are OK and that it can exchange confidential information with the other servers. It is selected only if the fields are missing certificates, missing CA certificates, and untrusted hosts in the detail view are empty (read-only).

    Our SX3Client (Syracuse1) is considered as untrusted host by SX3Client2 (Syracuse2)

    Did we miss a step ?

    During installation of Syracuse 2, those files (generated by certs_tools/certgen.bat of Syracuse 1) were used.

    Don't know if related,

    but the last step of the installation has been done successully

    Do you have any idea what we did wrong ?

    Thank you !

Children