Skip to end of metadata
Go to start of metadata

Deployment synchronization can be done using rsync, which is a file copying tool. These changes must be done in the manager node and in the same directory.

  1. Create a file called workers-list.txt that lists all the worker nodes in the deployment. The following is a sample of the file where there are two worker nodes.

    Tip: Different nodes are separated by new lines.

  2. Create a file to synchronize the <PRODUCT_HOME>/repository/deployment/server folders between the manager and all worker nodes.

    Note: You must create your own SSH key and define it as the pem_file. Alternatively, you can use an existing SSH key. Specify the manager_server_dir depending on the location in your local machine. Change the logs.txt file path and the lock location based on where they are located in your machine.

    #delete the lock on exit
    trap 'rm -rf /var/lock/depsync-lock' EXIT 
    mkdir /tmp/carbon-rsync-logs/
    #keep a lock to stop parallel runs
    if mkdir /var/lock/depsync-lock; then
      echo "Locking succeeded" >&2
      echo "Lock failed - exit" >&2
      exit 1
    #get the workers-list.txt
    pushd `dirname $0` > /dev/null
    popd > /dev/null
    echo $SCRIPTPATH
    for x in `cat ${SCRIPTPATH}/workers-list.txt`
    echo ================================================== >> /tmp/carbon-rsync-logs/logs.txt;
    echo Syncing $x;
    rsync --delete -arve "ssh -i  $pem_file -o StrictHostKeyChecking=no" $manager_server_dir $x >> /tmp/carbon-rsync-logs/logs.txt
    echo ================================================== >> /tmp/carbon-rsync-logs/logs.txt;
  3. Create a Cron job that executes the above file every minute for deployment synchronization. Do this by running the following command in your command line.

    Note: You can run the Cron job on one given node (master) at a given time. If you switch it to another node, you must stop the Cron job on the existing node and start a new Cron job on the new node after updating it with the latest files so far.

    *   *  *   *   *     /home/ubuntu/setup/rsync-for-depsync/rsync-for-depsync.sh


  • No labels