This recipe will show how to use synchronization to update Orchestrator objects between two Orchestrator servers.
We will need at least one workflow, action, or other Orchestrator object that can be synced.
Additionally, we also need two Orchestrator servers; they should not be in a cluster. For test purposes, you can deploy an Orchestrator appliance without any additional configuration.
We will use a workflow in this example. The same method applies to all other Orchestrator elements that can be synchronized:
Synchronizing Orchestrator objects is one of the easiest ways to make sure that two servers have the same elements. This doesn't work for clusters as both Orchestrators in a cluster share the same database (same workflow IDs). A good example here is a sync between a development environment and a production environment.
When synchronizing a local element that doesn't exist on the remote server, Orchestrator will not only create the element but also the folder structure for it. This will make sure that the same structure exists on both servers. Also, the ID of the Orchestrator object will be kept the same when synchronizing.
Please note that depending on which direction you sync, the options you see might be different:
Action |
Description |
None |
This is not what you expect. This will update the remote version with the local version. If the element doesn't exist on the remote side, it will create it there. |
Update |
Update will take the version from the remote server and will overwrite the local version. |
Commit |
This will take the local version and overwrite the remote version. |
Delete |
If an element doesn't exist on the remote server, you can choose to delete the local version. |
The recipe Managing remote Orchestrators in this chapter.
The recipe Working with REST in Chapter 9, Essential Plugins.